Ответ 1
Полный текст с 2
столбцами, которые вы создаете, как это
ALTER TABLE tbl_query
ADD FULLTEXT INDEX 'FullText'
('query_desc' ASC, 'query_desc_details' ASC);
Я выполняю следующий запрос на tbl_query
select * from tbl_query q where match(q.query_desc,q.query_desc_details) against ('test1' WITH QUERY EXPANSION);
Это дает ошибку
16:46:22 select * from tbl_query q where match(q.query_desc,q.query_desc_details) against ('test1' WITH QUERY EXPANSION) LIMIT 0, 1000 Error Code: 1191. Can't find FULLTEXT index matching the column list 0.078 sec
Моя таблица похожа на
CREATE TABLE `tbl_query` (
`query_id` int(11) NOT NULL AUTO_INCREMENT,
`query_desc` text NOT NULL,
`query_desc_details` text,
PRIMARY KEY (`query_id`),
KEY `QUERY_DESC` (`query_desc`(333)) USING BTREE,
KEY `QUERY_DESC_DETAILS` (`query_desc_details`(333)) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
В базе данных полнотекстовые границы слов похожи на
ft_max_word_len= 84
ft_min_word_len= 4
Я ищу два столбца. Итак, мой вопрос заключается в том, как создать полный текстовый индекс для таблицы?
Полный текст с 2
столбцами, которые вы создаете, как это
ALTER TABLE tbl_query
ADD FULLTEXT INDEX 'FullText'
('query_desc' ASC, 'query_desc_details' ASC);
ALTER TABLE `TableName`
ADD FULLTEXT INDEX `IndexName` (`ColumnName`);
Это создает индекс. Это то, что вы хотите?
ALTER TABLE table ADD FULLTEXT index_name(column1);