2010-12-12 38 views
0

剛剛遇到這個問題,使用mysql的全文搜索。FULLTEXT無關結果

我喜歡250條記錄(長文章喜歡的東西),並使用全文MATCH AGAINST IN BOOLEAN MODE。現在,如果我搜索關鍵字'三星',如果這個關鍵字存在於所有記錄中,那麼它將返回它應該記錄的所有250條記錄(當然,如果關鍵字超過記錄的50%,就不會返回「IN BOOLEAN MODE」,它不會返回任何內容)。

現在的問題是,在一些文章中,關鍵字'三星'曾經發生過一次,而其他幾次,但是MYSQL對所有返回的記錄給出了1分,甚至那些具有'三星'如15在他們的時代。

回答

1
select ... 
where match(...) against('samsung' in boolean mode) 
order by match(...) against('samsung' with query expansion) desc; 
+1

我想你實際上在這裏運行2個全文查詢可能會影響性能 – Xuni 2011-01-01 20:57:22