我想以以下方式提升 inStock:true 且价格高的文档:
- inStock:true 为 1
- inStock:false 为 2
这样我就可以使用 price 和 inStock 数字表示的生成作为 boost 函数:
document boost = (inStock == true ? 2 : 1) * price
这可能吗?已经有一个关于 boolean field boosting的问题,但它不符合我的要求。
更新1:
Solr 4 中实现的SOLR-2136用于条件函数 (if),这使我的案例变得简单。由于 Solr 4 尚未发布,是否有任何解决方法?
UPDATE2:尽量不要在 Solr 中使用布尔字段类型。它存储 'T' 为真,'F' 为假,您需要使用 map() 和 ord() 以便将 true 映射为 1,将 false 映射为 0。只需将 int 用于布尔值,如果你不这样做' t 在布尔字段中允许 null,不要为您的字段索引错误值。