嗨,我在全文搜索中遇到了一个奇怪的问题。
我的查询是。
SELECT `itemid`, `title`, `image`,
MATCH( `itemid`, `title`, `product_id`,`p1_name`, `p2_name`)
AGAINST ("+samsung +one" IN BOOLEAN MODE ) AS score
FROM `tablename`
WHERE `active_flag`='1' AND `image`!=''
AND `new_price`>'0' AND
MATCH( `itemid`, `title`, `product_id`,`p1_name`, `p2_name`) AGAINST ( "+samsung +one" IN BOOLEAN MODE ) !=0
ORDER BY score DESC;
这给我的数据与全文索引字段中的单词“one”不匹配。 即使我包含任何单词或所有这些单词,如“一二三四”作为搜索参数,它也会给我结果。
最佳答案
Mysql 全文索引实现了“停用词”——搜索时忽略的常用词,例如“a”、“the”等,甚至一些很长的词,如“corresponding”。
默认的停用词列表包括单词“one”,这就是它没有获得任何匹配项的原因。参见 this link查看完整列表。
您可以通过编辑此文件来控制列表:
myisam/ft_static.c
关于mysql - 全文搜索不适用于关键字 "one",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20881190/