MATCH..AGAINST的相关性分数不起作用(MySql)
MATCH..AGAINST的相关性分数不起作用。
创建了一个有2行的虚拟表格。
虚拟表
Row1 =>'Leela Hayat Marriot'
Row2 =>'美洲最佳价值'
查询1:
SELECT MATCH(COL1)AGAINST( '*里拉哈亚特*' IN BOOLEAN MODE)AS关联FROM表1 WHERE MATCH(COL1)AGAINST( '*里拉哈亚特*' IN BOOLEAN MODE);
结果:
关联
2
QUERY2:
SELECT MATCH(col1)AGAINST('Americas * Best *'IN BOOLEAN MODE)AS与table1的相关性匹配(col1)('Americas * Best *'IN BOOLEAN MODE);
结果:
关联
1
Query1工作正常,但为什么查询2不工作?
为什么我在Query2中获得相关性1而不是2,因为Americas和Best都存在于列中。
谢谢
http://dev.mysql.com/doc/refman/5.7/en/fulltext-stopwords.html
'BEST'列在停用词表中。
http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_ft_stopword_file
ft_stopword_file:
用于读取MyISAM表上全文搜索的停用词表的文件。 服务器在数据目录中查找文件,除非给出绝对路径名来指定不同的目录。 文件中的所有单词都被使用; 评论不荣幸。 默认情况下,使用内置的停用词表(正如storage / myisam / ft_static.c文件中所定义的)。 将此变量设置为空字符串('')将禁用停用词过滤。
我禁用了停用词表,现在查询2工作正常。
感谢帮助。
链接地址: http://www.djcxy.com/p/13113.html上一篇: relevance score of MATCH..AGAINST is not working (MySql)
下一篇: Efficient search with partial word match and relevancy score (FULLTEXT)