2010-06-10 40 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