2012-02-23 131 views
0

查询波纹管:MySQL全文索引搜索相关

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

+0

是不是它的,因为你有3第一次和4以后在你的数据库行? – 2012-02-23 15:10:43

+0

你是说表中的行位置很重要? – keepwalking 2012-02-23 15:14:20

+0

也许....你说什么? – 2012-02-23 15:16:49

回答

0

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

+0

据我所知mysql中的匹配是不区分大小写的,所以大写字母无关紧要(也有测试,有和没有,相关性值相同) – keepwalking 2012-02-23 15:12:25

+0

@keepwalking两种情况都有两个关键字。你看到吗? – Kayser 2012-02-23 15:14:45

+0

另外4)包含4个关键字。 2个坦克和2个cartofi – keepwalking 2012-02-23 15:15:03