Innodb:查询超过1列时,找不到匹配列列表的FULLTEXT索引

问题描述 投票:9回答:3

我正在尝试在MySQL INNODB表上运行一个非常简单的查询:

SELECT * 
FROM items 
WHERE MATCH (item_title,item_description) AGAINST ('dog')

item_titleitem_description都有FULLTEXT指数。

我一直收到这个错误:

找不到与列列表匹配的FULLTEXT索引

我的问题:当我查询item_title或只是item_description然后它工作正常。但是当我在1个查询中同时执行这两个操作时,如上所示,我得到了该错误。

知道什么是错的吗?

mysql full-text-search innodb
3个回答
10
投票

你需要第三个索引:

FULLTEXT(item_title, item_description)

7
投票

我可能会迟到,只是发布在这里以防有人混淆:)

运行此查询:

ALTER TABLE `items` ADD FULLTEXT(`item_title`,`item_description`);

然后您就可以运行全文搜索:

SELECT * 
FROM items 
WHERE MATCH (item_title,item_description) AGAINST ('dog')

0
投票
ALTER TABLE `table_name` ADD FULLTEXT (`item_title` ,`item_description`);
    and then ( "SELECT table_name.*,
    MATCH (item_title, item_description) AGAINST ('" . $search . "') AS relevance
    FROM table_name
    WHERE MATCH (item_title, item_description) AGAINST ('" . $search . "')
    ORDER BY relevance DESC" );
© www.soinside.com 2019 - 2024. All rights reserved.