Solr 7.3.0:Range Faceting中facet.mincount参数未生效问题咨询
Solr自定义价格区间分面过滤问题解决办法
我之前也踩过一模一样的坑!你设置了facet.mincount=1但Solr还是返回商品数为0的价格区间,核心原因是通用的facet.mincount参数并不作用于facet.intervals类型的自定义区间分面。
为什么会出现这种情况?
Solr的分面参数是有细分场景的:
facet.mincount主要负责过滤常规字段值分面(term facets)里计数为0的选项;- 而自定义区间分面(
facet.intervals)属于独立的分面类型,有自己专属的过滤参数,默认不会继承通用的facet.mincount配置。
解决办法
给你的区间分面单独设置facet.intervals.mincount参数即可:
- 全局生效:直接在查询参数里添加
facet.intervals.mincount=1,所有facet.intervals的结果都会过滤掉计数为0的区间; - 单个字段生效:如果只想针对价格字段的区间分面过滤,可设置
f.price.facet.intervals.mincount=1(这里的price是你的价格字段名)。
举个实际的查询参数示例:
q=*:*&facet=true&facet.mincount=1&facet.intervals={!key=price_interval}price&facet.intervals.set=[0,50),(50,100),(100,*]&facet.intervals.mincount=1
调整后,Solr就只会返回包含商品的价格区间啦~
内容的提问来源于stack exchange,提问作者Avi Kaminetzky
相关产品推荐
相关产品推荐

