我正在尝试在MySQL INNODB表上运行一个非常简单的查询:
SELECT *
FROM items
WHERE MATCH (item_title,item_description) AGAINST ('dog')
列item_title
和item_description
都有FULLTEXT
指数。
我一直收到这个错误:
找不到与列列表匹配的FULLTEXT索引
我的问题:当我查询item_title
或只是item_description
然后它工作正常。但是当我在1个查询中同时执行这两个操作时,如上所示,我得到了该错误。
知道什么是错的吗?
你需要第三个索引:
FULLTEXT(item_title, item_description)
我可能会迟到,只是发布在这里以防有人混淆:)
运行此查询:
ALTER TABLE `items` ADD FULLTEXT(`item_title`,`item_description`);
然后您就可以运行全文搜索:
SELECT *
FROM items
WHERE MATCH (item_title,item_description) AGAINST ('dog')
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" );