如何在多列上创建FULLTEXT索引?

Pra*_*hal 28 mysql database

我正在运行以下查询 tbl_query

select * from tbl_query q where match(q.query_desc,q.query_desc_details) against ('test1' WITH QUERY EXPANSION);
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误

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  
Run Code Online (Sandbox Code Playgroud)

我的桌子是这样的

 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;
Run Code Online (Sandbox Code Playgroud)

在数据库中全文字边界就像

ft_max_word_len=    84
ft_min_word_len=    4  
Run Code Online (Sandbox Code Playgroud)

我正在搜索两列.
所以我的问题是如何为表创建全文索引?

Kay*_*son 53

使用2您创建的列的全文

ALTER TABLE tbl_query
ADD FULLTEXT INDEX `FullText` 
(`query_desc` ASC, `query_desc_details` ASC);
Run Code Online (Sandbox Code Playgroud)

  • @SupunKavinda'ASC'以升序索引,而'DESC'以降序索引 (2认同)

Rag*_*thy 23

ALTER TABLE `TableName`
    ADD FULLTEXT INDEX `IndexName` (`ColumnName`);
Run Code Online (Sandbox Code Playgroud)


A P*_*aul 9

这会创建索引.这是你想要的吗?

ALTER TABLE table ADD FULLTEXT index_name(column1);
Run Code Online (Sandbox Code Playgroud)

  • 不应该工作.如果有,请检查一次使用desc.尝试重启mysql一次.但这应该有效. (2认同)