我在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);

关于mysql - 如何在多列上创建FULLTEXT索引?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21551560/

10-13 08:52