我有一个Solr查询,我试图根据某个字段对结果进行排序。
我想以这样的方式对其进行修改,即只对特定的文档集进行排序,并将其余文档简单地附加到排序列表的末尾。
有没有办法实现这个目标?
请帮忙。
问候。
答案 0 :(得分:1)
如果要按动态的特定字段条件排序,可以在匹配条件更高的情况下提升字段并按分数排序。
例如bq=some_field:some_value^10
这将提高仅符合标准的文档分数
此外,对于所有其他文件,分数将保持不变,并按原样遵循吹嘘的文件。
编辑: -
你可以提升多个领域,例如bq=string_array_field:some_value^10&bq=ranking^10
会提升与价值相匹配的文件,并将排名更高的排名提升到最高位置
其余文件将随之而来。
答案 1 :(得分:0)
对于schema.xml中的每个<fieldType>
定义,您可以设置一个sortMissingLast="true"
选项,该选项将为您提供所需的排序行为。对于您的具体示例,我建议您使用sortMissingLast="true"
设置创建一个新字段,然后根据您给定的条件填充此附加字段,而不是为您希望在排序时显示的那些文档设置值。