【问题标题】:Mysql fulltext search relevanceMysql全文搜索相关性
【发布时间】:2012-02-23 15:04:49
【问题描述】:

下面的查询:

select tag, MATCH(t.tag) AGAINST ('cartofi copti la cuptor') as relevance
FROM tags t
WHERE MATCH(t.tag) AGAINST ('cartofi copti la cuptor')

结果是:

1) Cartofi la cuptor cartofi copti la cuptor - 8.298574447631836
2) Cartofi copti - 6.979184150695801
3) Ardei copti umpluti cu branza snitel de ardei copti - 6.61628532409668
4) Cartofi la cuptor cu sos de carne cartofi cu pui la cuptor - 5.385213851928711

我的问题是为什么 3) 在 4) 之前? 4) 包含 2 个匹配关键字和 3) 仅包含一个关键字。

t.tag 字段是具有全文索引的文本字段。表引擎当然是 MyIsam。

Mysql版本是5.5.20-log

【问题讨论】:

  • 不是因为您的数据库行中有 3 个前面和 4 个后面吗??
  • 您是说表格中的行位置很重要?
  • 也许....你说什么??
  • 不。我已经更改了表格中的位置,但没有任何变化。
  • 您是否将 FT_MIN_WORD_LEN 设置为少于默认的 4 个字符?除非您另有说明,否则 MySQL FULLTEXT 会忽略长度小于 4 个字符的单词。

标签: mysql search


【解决方案1】:

也许你应该尝试重建你的索引。

【讨论】:

  • 据我所知,mysql中的匹配不区分大小写,所以大写字母无关紧要(也测试了有无,相关值相同)
  • @keepwalking 这两种情况都有两个关键字。你看到了吗?
  • 还有 4) 包含 4 个关键字。 2 个杯子和 2 个卡托菲
  • 没有。我看到 3) 有两次相同的关键字,而 4) 有两次不同的关键字(总共 4 个)
  • 与 la 总共有 6 个 4)。仔细看看:cartofi、cuptor 和 la。每次两次。但是'la'无关紧要。最小单词是 3。
猜你喜欢
  • 2014-02-18
  • 2012-11-09
  • 2011-11-05
  • 1970-01-01
  • 2020-05-21
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多