簡體   English   中英

如果在特定字段中找到查詢,則干草堆/ Solr提升結果

[英]Haystack/Solr boosting results if the query is found in a specific field

我們遇到的問題是,將不相關的結果返回為搜索中的最高結果,我們正在努力改善這種行為,但不確定如何做到。

我們的SearchIndex包含大約十二個字段。 document = True字段是模板支持的字段,我們已將大部分內容放入其中。 即使它仍然有用,但在其中找到的某些東西與其他東西的相關性要低得多。

舉一個具體的例子:如果用戶搜索“紅玫瑰”,我們希望返回紅玫瑰作為最高結果...如果較低的結果只是玫瑰或只是紅色,甚至被描述為“玫瑰紅”,則效果更好“ 彩色。

問題是我們的document = True字段中有大量被描述為“玫瑰紅色”的項目。 更糟糕的是,實際的紅色玫瑰沒有“紅色”和“玫瑰”彼此特別接近,因為這些值來自不同的字段。 結果,我們得到了完全不相關的前幾百個結果。

我們想做的是:

答:搜索主文檔,然后搜索我們每個其他字段,並相應地增強(但不是硬過濾器)。 如果術語“玫瑰”出現在項目名稱之一中,而“紅色”作為其屬性值之一出現,則該結果應具有較高的得分。 這為我們提供了在理論上按相關性排序的最佳結果。

B.一次搜索所有字段,如果值是任何“增強”字段,則將其提升。

似乎應該使用字段增強來解決問題,但由於基於字段的過濾是一個嚴酷的排除,我們希望弄清楚如何表達它,我們希望它僅影響相關性評分。

兩者的結果實際上是相同的。 我們只是無法弄清楚如何使用Haystack來執行其中任何一個。 或者,如果我們不得不退回到原始查詢,該如何編寫一個solr查詢來完成此任務。

我可以給你一些指示,因為我沒有確切的用例:-

您可以檢查Solr edismax查詢解析器以配置:-

  1. 您要搜索的字段-主要用於選擇結果
  2. 可變提升字段的相關性-確定字段的重要性
  3. 不同單詞組合的可變提升,例如單個單詞,短語匹配,帶斜率的帶狀皰疹匹配,以確定相關性
  4. 在其他領域提供額外的推動

這將幫助您過濾結果並根據字段和單詞組合匹配項對結果進行相應排序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM