2011-12-27 207 views
1

我正在研究通過數據庫搜索的項目,然後根據用戶輸入的字符串按相關性對搜索結果進行排序。我認爲我目前的搜索是相當不錯的,但我寫的比較結果相關性的比較結果給了我有趣的結果。我不知道該考慮什麼。我知道這是一個很大的信息檢索分支,但我不知道從哪裏開始找到按相關性對對象進行排序的搜索示例,並且很感謝任何反饋。如何按相關性對搜索結果進行排序?

爲了更多地瞭解我的具體問題,用戶將在網站數據庫中輸入一個字符串,該數據庫用不同的字段存儲對象(商店中的商品),例如次要和主要分類(例如,一個XBox 360遊戲可能會與major = video_games和minor = xbox360字段以及其特定名稱一起存儲)。我認爲應該在搜索中考慮的四個主要領域是對象類型的具體名稱,主要,次要和流派,如果有幫助的話。

+1

Lucene做到了。如果你不想使用它,你可以看看他們的代碼的想法。 – Bill 2011-12-27 03:35:45

+1

謝謝奧利!我已經看過Lucene;我認爲這可能對我的目的有點沉重,但我會進一步研究它。 – Salmontres 2011-12-27 05:04:16

+1

所以使用Solr。一個包含許多漂亮功能的Lucene。 – 2011-12-27 20:10:16

回答

1

如果您不想使用lucene/Solr,則可以始終使用距離度量來查找查詢與從數據庫中檢索的行之間的相似度。一旦你得到分數,你可以排序他們,他們將被視爲按相關性排序。

這就是lucene場景背後發生的情況。您可以使用簡單的相似性指標,如曼哈頓距離,n維空間中的點距離等。查找lucene評分公式以獲取更多信息。

相關問題