跟进问题
如果我理解正确,要获得 Solr 中每个价格区间的匹配数,可以使用以下不同的方法:
只获得最低价格和最高价格:
现在我的问题是:我可以让结果分组工作正常,但如何获得每个组的最低和最高价格 (&group=true)。是否有与之相关的 Solr JIRA?
Lucene JIRA 3097: Post group faceting does在全局方面而不是在“每组”结果中呈现结果。
最佳答案
Solr 版本:5.4 及以上。
我对此有一个解决方案,并且已在我的项目中实现。
您必须使用 json facet 来根据 facet 结果获得最大值和最小值。
json.facet={
tags_group:{
type:terms,
field:tags,
limit:-1,
facet:{
pricemin:{
type:terms,
field:price,
limit:1,
sort:{
x:asc
},
facet:{
x:"min(price)"
}
},
pricemax:{
type:terms,
field:price,
limit:1,
sort:{
y:desc
},
facet:{
y:"max(price)"
}
}
}
}
}
在上面的 Json facet 中,我使用了标签作为归档(多值),这将创建一个这样的存储桶
<str name="val">Letter Holder</str>
<int name="count">2</int>
<lst name="pricemin">
<arr name="buckets">
<lst>
<double name="val">899.0</double>
<int name="count">1</int>
<double name="x">899.0</double>
</lst>
</arr>
</lst>
<lst name="pricemax">
<arr name="buckets">
<lst>
<double name="val">1299.0</double>
<int name="count">1</int>
<double name="y">1299.0</double>
</lst>
</arr>
</lst>
关于Solr 动态价格范围和组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7255696/