【发布时间】: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 个字符的单词。