如何在solr中按整数过滤以使集合中的0作为最后结果?

时间:2018-12-17 07:34:27

标签: sorting solr

我想按价格过滤solr 6.4.1中的结果,同时仍将没有价格的结果保留在集合中,并将没有价格的结果推到结果列表的末尾。

数据集示例:

item1 = $32
item2 = $31
item3 = 
item4 = $33

过滤器示例查询:

<str>{!tag=price}price:[1 TO *]</str>

所需结果:

result4 = $31
result4 = $32
result4 = $33
result4 =

在过滤器查询中使用1将从集合中过滤出空结果,将0作为开始将其返回到列表顶部。

问题是换句话说,如何按价格作为最高价格结果的0排序?

1 个答案:

答案 0 :(得分:0)

可以在schema.xml中的be defined with sortMissingLast字段中使缺少值的文档在数据集的末尾进行排序。

<fieldType name="price" class="solr.IntPointField" sortMissingLast="true" omitNorms="true"/>

请注意,这是假设字段丢失。如果它实际上没有值,则不要在该字段中索引0-根本不要添加该字段。