2010-03-21 41 views
1

我正在實施配料文本搜索,用於將配料添加到配方中。我目前得到的成分名稱的全文索引,存儲在一個單一的文本字段,就像這樣:超出默認相關性的額外全文排序標準

「醬,番茄,精簡版,亨氏」

我發現,因爲有在數據庫中有很多與名稱非常相似的成分,只是通過相關性進行排序在很多時候都不起作用。所以,我發現自己按照我自己的一些經驗法則進行排序,這可能會重複很多全文搜索算法,從而產生數字相關性。舉例來說(有刪節):

ORDER BY [成份名稱正是搜索字詞], [成份名稱與搜索詞開始], [成份名稱與搜索任何單詞開始,包含一些所有的搜索字詞訂單], [成分名稱包含某種順序中的所有搜索字詞],

...等等。其中每一個在SELECT規範中都被定義爲返回1或0的表達式,所以我按順序排序。

我很樂意聽到的建議:

  • 一個更好的辦法在一個地方定義複雜的順序,按標準,或者說在一個視圖或存儲過程,你可以通過剛纔的搜索詞和取回一組結果,而不必擔心它們是如何訂購的?
  • 這是比MySQL的全文引擎更好的工具 - 也許如果我使用獅身人面像或其他東西[我聽說過但以前沒有用過],我會找到某種複雜的配置選項,旨在解決像這樣的問題?
  • 一些谷歌搜索條款可能會討論如何在這樣的特定域名中訂購文本項目?我沒有發現太多用處。

感謝您的閱讀!

回答