Innodb:查询超过 1 列时找不到与列列表匹配的 FULLTEXT 索引
Innodb: Can't find FULLTEXT index matching the column list when queried more than 1 columns
我正在尝试 运行 在我的 MySQL INNODB table 上进行一个非常简单的查询:
SELECT *
FROM items
WHERE MATCH (item_title,item_description) AGAINST ('dog')
列 item_title
和 item_description
都有一个 FULLTEXT
索引。
我不断收到此错误:
Can't find FULLTEXT index matching the column list
我的问题: 当我查询 just item_title
或 just item_description
然后它工作正常。但是当我在 1 个查询中同时执行这两项操作时,如上所示,我得到了那个错误。
知道哪里出了问题吗?
您需要第三个索引:
FULLTEXT(item_title, item_description)
我可能会迟到,只是 post 以防有人混淆 :)
运行 这个查询:
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" );
如果您为有效的单个列设置全文索引。说
ALTER TABLE `items` ADD FULLTEXT(`item_title`);
ALTER TABLE `items` ADD FULLTEXT(`item_description`);
还需要一个索引,两列的组合。
ALTER TABLE items ADD FULLTEXT INDEX title_desc_index (item_title, item_description);
之后你可以运行你的查询
SELECT * FROM items WHERE MATCH (item_title,item_description) AGAINST ('dog')
我正在尝试 运行 在我的 MySQL INNODB table 上进行一个非常简单的查询:
SELECT *
FROM items
WHERE MATCH (item_title,item_description) AGAINST ('dog')
列 item_title
和 item_description
都有一个 FULLTEXT
索引。
我不断收到此错误:
Can't find FULLTEXT index matching the column list
我的问题: 当我查询 just item_title
或 just item_description
然后它工作正常。但是当我在 1 个查询中同时执行这两项操作时,如上所示,我得到了那个错误。
知道哪里出了问题吗?
您需要第三个索引:
FULLTEXT(item_title, item_description)
我可能会迟到,只是 post 以防有人混淆 :)
运行 这个查询:
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" );
如果您为有效的单个列设置全文索引。说
ALTER TABLE `items` ADD FULLTEXT(`item_title`);
ALTER TABLE `items` ADD FULLTEXT(`item_description`);
还需要一个索引,两列的组合。
ALTER TABLE items ADD FULLTEXT INDEX title_desc_index (item_title, item_description);
之后你可以运行你的查询
SELECT * FROM items WHERE MATCH (item_title,item_description) AGAINST ('dog')