0

我有一个 Solr 查询,我试图根据某个字段对结果进行排序。

我想以这样一种方式修改它,即只有一组特定的文档被排序,其余的只是简单地附加到排序列表的末尾。

有没有办法做到这一点?

请帮忙。

问候。

4

2 回答 2

1

如果要按动态的特定字段条件排序,可以将匹配条件更高的字段提升并按分数排序。
例如,bq=some_field:some_value^10
这将提高仅符合条件的文档的分数。
此外,对于所有其他文档,分数将保持不变,并且将按照原样遵循吹嘘的文档。

编辑:-
您可以提升多个字段,例如bq=string_array_field:some_value^10&bq=ranking^10将匹配该值的文档和具有更高排名的文档提升到顶部。
其余文件将随之而来。

于 2013-07-17T04:11:41.427 回答
0

对于 schema.xml 中的每个<fieldType>定义,您都可以设置一个sortMissingLast="true"选项来提供所需的排序行为。对于您的具体示例,我建议使用该sortMissingLast="true"集合创建一个新字段并使用,然后根据您给定的条件填充此附加字段,而不是为您希望在排序时显示在末尾的那些文档设置值。

于 2013-07-17T02:22:36.953 回答