【问题标题】:relevance score of MATCH..AGAINST is not working (MySql)MATCH..AGAINST 的相关分数不起作用(MySql)
【发布时间】:2016-11-01 06:24:31
【问题描述】:

MATCH..AGAINST 的相关性分数不起作用。

创建了一个有 2 行的虚拟表。

虚拟表

Row1=> 'Leela Hayat Marriot'

Row2=> '美洲最佳价值'

查询1:

SELECT MATCH (col1) AGAINST ('Leela* Hayat*' IN BOOLEAN MODE) 作为相关性 从表 1 WHERE MATCH (col1) 反对(布尔模式下的'Leela* Hayat*');

结果:

相关性

2

查询2:

SELECT MATCH (col1) AGAINST ('Americas* Best*' IN BOOLEAN MODE) 作为相关性 从表 1 WHERE MATCH (col1) AGAINST ('Americas* Best*' IN BOOLEAN MODE);

结果:

相关性

1

查询 1 工作正常,但为什么查询 2 不工作?

为什么我在 Query2 中获得相关性 1 而不是 2,因为 Americas 和 Best 都出现在列中。

谢谢

【问题讨论】:

  • 显示您的架构创建。告诉我们你的 mysql 版本。
  • @Drew: CREATE TABLE table1 (col1 varchar(500) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1; ====================================== 插入table1 (col1) 值 ('Leela Hayat Marriot'), ('美洲最佳价值'); ===================================== ALTER TABLE table1 ADD FULLTEXT KEY col1 (@ 987654326@); ======================== MySQL版本:5.5.46 =================== == 抱歉没有格式化的评论

标签: mysql


【解决方案1】:

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 表中全文搜索的停用词列表的文件。服务器在数据目录中查找文件,除非给出绝对路径名来指定不同的目录。使用文件中的所有单词; cmets不被尊重。默认情况下,使用内置的停用词列表(在 storage/myisam/ft_static.c 文件中定义)。将此变量设置为空字符串 ('') 将禁用停用词过滤。

我禁用了停用词列表,现在查询 2 工作正常。

感谢您的帮助。

【讨论】:

  • 我写了一些:12 取决于你想要 MyISAM 还是 INNODB
猜你喜欢
  • 2013-01-24
  • 2011-09-09
  • 1970-01-01
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
相关资源
最近更新 更多