假設我有兩列,關鍵字和內容。我有一個全文索引。我想要在關鍵字中使用foo的行與內容中的foo的行關聯更多。我需要做什麼才能使MySQL對比關鍵字中的匹配更高的內容進行加權?如何操縱MySQL全文搜索相關性使一個字段比另一個字段更「有價值」?
我正在使用「match against」語法。
SOLUTION:
是能夠使這項工作方式如下:
SELECT *,
CASE when Keywords like '%watermelon%' then 1 else 0 END as keywordmatch,
CASE when Content like '%watermelon%' then 1 else 0 END as contentmatch,
MATCH (Title, Keywords, Content) AGAINST ('watermelon') AS relevance
FROM about_data
WHERE MATCH(Title, Keywords, Content) AGAINST ('watermelon' IN BOOLEAN MODE)
HAVING relevance > 0
ORDER by keywordmatch desc, contentmatch desc, relevance desc
我想這一點,並結束了語法錯誤。我不認爲我知道應該通過blahblah spot發佈什麼內容。建議? – Buzz 2009-02-13 21:11:31
對不起,這不是一個複製和粘貼示例。在over子句中的順序是您應用行號的順序,所以它應該是您通常會按順序排列結果的順序。 – notnot 2009-02-13 21:43:42
現在我想到了,這個將複製與關鍵字和內容匹配的記錄。 – notnot 2009-02-13 21:52:45