2010-06-10 41 views
1

我想过滤一个范围内的属性,但没有属性的项目应该在结果中排​​在最后。如果该属性未设置,我的解决方案是将其设置为-1控制Solr得分/排序

+(property:[10000000001 TO 10000000019] property:"-1"^0.5) 

这不起作用,因为每个具有属性的文档:-1都会得到非常高的分数,出于某种原因。有没有办法在这里可靠地控制排序?

提高范围反而意味着我必须提高每隔一个学期,我宁愿不要这样做。

回答

1

值-1的属性被提升,所以删除它会给你更好的结果。

此外,如果一个属性丢失,只是保持它的缺失。不要将其设置为-1。

您可以将结果与sort=property desc查询排序或排序的属性,同时与sortMissingLast=true

+0

感谢您的回答索引!如果我没有将缺少的属性设置为'-1',查询将会是什么样子?如果我使用'sortMissingLast','+(property:[10000000001 TO 10000000019])'真的会返回没有'property'的文档吗? – Znarkus 2010-06-14 09:29:57