2017-09-15 93 views
1

舉例:假設我們有一個搜索查詢返回2000個結果,其範圍從非常相關到完全不相關。當按相關性排序時,這很好,因爲最相關的結果列在第一頁上。Solr:如何在不按相關性排序時管理不相關的結果?

但是,當通過其他字段進行排序(例如用戶評分)時,第一頁上的結果中將顯示幾乎沒有相關的結果,這對我們的客戶來說是個問題。不知何故,我們只需要顯示最高評分的「相關」結果。所有這些

我只能想一些解決方案,有問題:

1 - 濾除Solr的側商家信息是否關聯得分是下一個門檻。我不知道如何做到這一點,從我讀過的話來看,這不是一個好主意。例如如果一個結果只返回10個列表,我想將它們全部顯示出來,而不是過濾出來。似乎不可能確定一個可以全面工作的閾值。如果任何人都可以告訴我,否則請告訴我如何!

2 - 根據分數過濾應用程序端的列表。這我可以沒有問題,除了現在我不能實現分頁,因爲我沒有辦法確定沒有返回整個集合,這會影響性能/帶寬等過濾結果的總數量......也有同樣的第一點的問題。

3 - 創建一種「合併」排序,聚合相關性和用戶評分之間的分數,然後對結果進行排序。首先,我不確定這是否有可能,其次,如果結果沒有按評級順序實際列出,那麼對用戶而言就會很奇怪。

這是如何解決的?我願意接受任何想法!

謝謝

回答

0

如果它們不相關,它們應該從結果集中排除。既然你想通過專門的領域(即用戶評級)來訂購,你必須調整你如何決定哪些文件包含在結果中。

在任何情況下,您都必須定義「什麼是相關的」,因爲分數在查詢之間並沒有真正的可比性,也沒有說「這是xyz相關的!」。

您必須決定爲什麼這些包含的文檔不相關,並根據該標準排除它們,然後使用評分作爲一種方法來進一步提高它們(如果您希望搜索似乎有機/相關)。否則,您可以排除它們並按用戶分數排序。但請記住,作爲用戶體驗的用戶分數通常是harder problem to make relevant than just order by the average of the votes

0

通常,客戶可以選擇不同的訂購選項,例如通過相關性或評分。但你說得對,按等級排序可能沒有用處。你可以做的是考慮到相關性評分的評分。例如,將「有機」分數乘以轉換爲小幅提升的分數。在Solr中,你可以用Function Queries來做到這一點。這不是艱難的科學,有一些魔力。很多是常識。它需要一些非常好的評估和測試,以查看最佳效果。

或者,如果您不想將其視爲檢索問題,則可以應用分面並讓用戶通過分級來篩選結果。讓用戶自助。但我可以想象,這並不適用於所有領域。

工程師可以定義相關性。內容相似性評分不僅是相關性的組成部分。許多信息檢索研究人員和工程師同意除了內容相似性之外還應該使用上下文信息。這爲定義檢索模型打開了大量的可能性。例如,受歡迎的是Learning to Rank(LTR)方法,其中從搜索日誌中學習不同的特徵,以在用戶配置文件和先前搜索行爲的情況下向用戶遞送更多相關文檔。 Solr將此作爲module提供。