我有許多索引到Solr的文檔。我現在正面臨一個要求,即搜索結果應根據其scores
返回排序。在非精確匹配的的情況下,如果存在平局,則將在名爲priority
的字段上應用另一級別的分類。solr中的選擇性排序
我在django 1.4中使用solr和django-haystack。
我可以做些什麼來達到我的要求?
我有許多索引到Solr的文檔。我現在正面臨一個要求,即搜索結果應根據其scores
返回排序。在非精確匹配的的情況下,如果存在平局,則將在名爲priority
的字段上應用另一級別的分類。solr中的選擇性排序
我在django 1.4中使用solr和django-haystack。
我可以做些什麼來達到我的要求?
edismax的提升可以用於此。它適用於所有分數,但如果它是一個小值,它只會對關係或近連接產生影響。基本分數的顯着差異不會重新排序。
參見:http://wiki.apache.org/solr/ExtendedDisMax#boost_.28Boost_Function.2C_multiplicative.29
我沒有任何的Django Django的或-草垛的知識,但如果你想在Solr的二次分揀你只是指定了多個種類的逗號分隔列表。例如...
score desc, priority desc
...如果將兩個文件具有相同的分數會再排序優先級字段排序得分的文件,和。
但是,請注意,這隻會提供第二種排序的東西,其中正好相同的分數值 - 你可能反而想「提高」你的文件的分數(即:實際上影響分數,之前排序)在您的優先領域。
我已經通過(''score','priority')命令了'SearchQuerySet'方法,但是這也適用於具有相同分數的精確匹配。我應該嘗試實現上述目標? –
@Hedde它甚至有可能實現我所嘗試的? –