0

我有许多文档被索引到 Solr。我现在面临一个要求,搜索结果应该根据它们的scores. 在不完全匹配的情况下,如果出现平局,则将对名为 的字段应用另一级别的排序priority

我在 django 1.4 中使用 solr 和 django-haystack。

我可以/应该做什么来达到我的要求?

4

2 回答 2

1

edismax 的提升可用于此目的。它适用于所有分数,但如果它是一个小值,它只会对平局或接近平局产生影响。基本分数的显着差异不会重新排序。

见:http ://wiki.apache.org/solr/ExtendedDisMax#boost_.28Boost_Function.2C_multiplicative.29

于 2012-10-15T15:16:51.460 回答
0

我不了解 django 或 django-haystack,但如果您想在 solr 中进行二次排序,只需将多个排序指定为逗号分隔列表。例子...

score desc, priority desc

...将按分数对文档进行排序,如果两个文档具有相同的分数,则将按优先级字段排序。

但是请注意,这只会为具有完全相同的分值的事物提供二次排序 - 您可能希望通过您的优先级字段“提高”文档的分数(即:实际影响分数,在排序之前) .

于 2012-10-15T22:02:13.590 回答