我在我们的网页上使用solr搜索产品搜索。从现在开始,一切正常。 但是在实施价格滑块时,为了按价格范围过滤实际结果,我坚持以下问题:
无法排除stats选项的过滤器,方法与facet上的过滤器相同。无论选择何种价格范围(在滑块上)以及在实际搜索中选择了哪个类别,我都会使用统计数据来获取总体最低价和最高价。
获得此值的最佳方法是在统计数据选择中排除范围过滤器,否则将仅针对实际(范围)结果存在最大和最小价格。
在facet上排除过滤器(适用于solr 4.4):
...&fq={!tag=cat}categories:Electronics/Computers&facet=true&facet.field={!ex=cat}categories&...
但无法使用此功能进行统计(请参阅https://issues.apache.org/jira/browse/SOLR-3177)
然后我尝试使用该被调用页面上建议的组选择。 我的solr电话看起来像这样:
fq={!tag=cat}categories:Electronics/Computers&facet=true&
facet.field={!ex=cat}categories_raw&
facet.prefix=Electronics&stats=true&stats.field=minPrice&
stats.field=maxPrice&stats.field=vat&group=true&group.query=minPrice:[* TO 20]
maxPrice:[0 TO *]&group.main=true
一切都很好。我得到了正确的统计结果和正确的结果计数应用了pricerange-filter。 ....除了问题,现在的方面计数错了,因为我没有应用价格范围过滤器。
我知道有一个group.facet选项,正如我也尝试过的那样。但是使用该group.facet我需要使用结果所基于的group.field。在我看来,通常我需要使用price-field作为group.field(group.field = price)。
但我们的产品确实有两个价格区域(最低和最高价格)。我试图将它们都设置为group.field参数,但仍然得到错误的方面计数。
看起来我距离正确的解决方案只有一小步,但我没有得到它。