我想提高它們的inStock文件:true和高價格,在某種程度上:Solr的:如何在布爾字段映射爲1和2,提高
- 的inStock:真正爲1
- 的inStock:假是2
所以,我可以用生產價格和使用inStock數字表示爲提升功能:
document boost = (inStock == true ? 2 : 1) * price
這可能嗎?已經有一個question about boolean field boosting,但它不符合我的要求。
UPDATE1:
SOLR-2136 Solr中4實行的是有條件的功能(如果),這使得我的情況很容易。由於Solr 4尚未發佈,是否有任何解決方法?
UPDATE2: 儘量不要在Solr中使用布爾型字段類型。它將「T」存儲爲true,將「F」存儲爲false,並且需要使用map()和ord()以便將true映射爲1,將false映射爲0.只需將int用於布爾值即可,在您的布爾字段中允許爲null,請勿爲您的字段索引錯誤值。
我在inStock中索引了true和false;此外,索爾的辭典順序ord(true)= 2,ord(false)= 1,這正是我想要的。 – Mohsen 2012-04-18 06:49:45
@Mohsen好吧,完美。但要確保你總是至少有一件iStock = false,否則你的真實成爲'1'! – Omnaest 2012-04-18 19:18:07