簡體   English   中英

我需要按相關性對從 SOLR 返回的方面進行排序

[英]I need to sort the facets that come back from SOLR by relevancy

我的 SOLR 索引歌曲對象屬於更高級別的專輯對象。 一個例子如下所示:

<song>
<album title>Blood Sugar Sex Magic</album title>
<song title>Under the Bridge</song title>
<description>A sad song about junkies</description>
</song>

我現在可以做的是在專輯標題上創建一個方面,這樣搜索歌曲時也會顯示哪些專輯包含該關鍵字的命中。

SOLR 的默認行為是按點擊次數最多到最少的順序顯示分面。 但是,我想要實現的是根據該專輯的熱門歌曲的相關性對方面列表進行排序。

例如,搜索詞“sad”可能會顯示“Blood Sugar Sex Magic”的一個命中的方面,也可能有一張名為“Sad Clown Songs”的專輯,其中有 10 個命中。 “悲傷的小丑歌曲”將作為第一個方面出現,即使“橋下”可能是最相關的歌曲。

我的問題是我怎樣才能恢復所有方面,然后按照其中歌曲的相關性對它們進行排序? 如果我需要更改或擴展一些底層 SOLR 代碼,那會是什么?

提前致謝。

Solr 只能按字典順序或按計數對 facet 進行排序(請參閱facet.sort 參數)。

如果您想實現不同的排序順序,我將從SimpleFacets 類開始。

最后,我們決定了無需修改 SOLR 源代碼的最簡單方法,即查詢 solr,詢問分面,然后迭代結果。

不理想,但目前有效。

您可以使用 Edismax 執行搜索查詢,並使用結果分組按特定字段分組,在您的情況下,您提到了專輯標題。

https://lucene.apache.org/solr/guide/7_0/result-grouping.html

https://lucene.apache.org/solr/guide/7_0/the-extended-dismax-query-parser.html

暫無
暫無

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

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