3
我有一個80,000行的數據庫,當我測試了一些FULLTEXT查詢時,我遇到了意想不到的結果。我從MYSQL刪除停用詞,並已設置的最小字長爲3MYSQL全文 - 意外的結果
當我做這個查詢:
SELECT `sentence`, MATCH (`sentence`) AGAINST ('CAN YOU FLY') AS `relevance`
FROM `sentences`
WHERE MATCH (`sentence`) AGAINST ('CAN YOU FLY')
ORDER BY `relevance` DESC
它給出了這樣的結果:
NO A FLY WITHOUT WINGS WOULD BE CALLED A WINGLESS | 10.623517036438
I CAN FLY | 7.61278629302979
I CAN FLY :) | 7.61278629302979
CAN YOU FLY? | 7.61278629302979
THEY CAN FLY | 7.61278629302979
YOU AM NOT FLY | 7.61278629302979
CAN YOU FLY | 7.61278629302979
HAVE YOU EVER SWALLOWED A FLY? | 7.52720737457275
I JUST WANNA FLY | 7.52720737457275
爲什麼「沒有A沒有翅膀的飛行將被稱爲無翼「獲得了最高的相關性,它只包含其中一個單詞......另外,」CAN YOU FLY「如何出現在頂部,這完全匹配。
我想用大多數匹配的關鍵詞排序,然後按大多數順序排列,然後用最少的單詞排序。這將使邏輯結果:
CAN YOU FLY
CAN YOU FLY?
I CAN FLY
THEY CAN FLY
I CAN FLY :)
YOU AM NOT FLY
HAVE YOU EVER SWALLOWED A FLY?
I JUST WANNA FLY
NO A FLY WITHOUT WINGS WOULD BE CALLED A WINGLESS
哇,他們認真地需要重新考慮他們的公式,如果連準確的短語在結果頂部... – Lenton 2013-03-21 23:33:06
@ user1970772這是一個全文搜索,它不是爲3個單詞文檔而設計的。例如'FLY'出現在所有文件中,因此它不相關,它增加了'nf'的值。 – Tchoupi 2013-03-21 23:35:20
您是否知道FULLTEXT的任何替代方案都能提供我想要的結果? – Lenton 2013-03-21 23:53:11