跟进问题
- 如何获取 solr 结果中的方面范围? https://stackoverflow.com/questions/33956/how-to-get-facet-ranges-in-solr-results
- SolR 查询 - 价格范围 https://stackoverflow.com/questions/7241960/solr-query-price-ranges
如果我理解正确的话,要获取 Solr 中每个价格区间的匹配数,可以使用以下不同的方法:
- per static price intervals:
- per dynamic price intervals
- Solr JIRA 可以获取动态分面间隔:Solr JIRA 1581:按功能分面 https://issues.apache.org/jira/browse/SOLR-1581
仅获取最低价格和最高价格:
- 对于整个索引的“价格”字段:StatsComponent
现在我的问题是:我可以让结果分组工作正常,但如何获得每个组的最小值和最大值(&group=true)。有 Solr JIRA 与之关联吗?
Lucene JIRA 3097:后组分面确实 https://issues.apache.org/jira/browse/LUCENE-3097呈现全局方面的结果,而不是“每组”结果。
Solr版本:5.4及以上。
我有一个解决方案,并且已经在我的项目中实现了。
您必须使用 json 分面来根据分面结果获得最大值和最小值。
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 方面,我使用标签作为归档(多值),这将创建一个像这样的存储桶
<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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)