2012-02-23 207 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