首页 文章

Solr Multi Select Facting忽略其他选定的Facets

提问于
浏览
1

我正在研究solr搜索结果的方面 . 我无法让方面显示我想要的方式 . 我希望能够在一个方面中选择一个值,并且只有在其他方面更新计数而不会在方面计数为0时取消值 .
示例我搜索了衬衫,这里是与计数一起返回的方面:

颜色:
[]红色(10)
[]蓝色(10)
[]绿色(10)

尺寸:
[]小(5)
[]中(10)
[]大(10)

现在,如果我选择红色,我希望我的facets更新如下:

颜色:
[x]红色(10)
[]蓝色(10)
[]绿色(10)

尺寸:
[]小(0)
[]中(5)
[]大(5)

我有它的工作,所以选择一个颜色不限制颜色方面的选项,但我无法弄清楚如何获得正确的方面来显示大小,通过调整我得到的排除:

尺寸:
[]中(5)
[]大(5)
要么:
尺寸:
[]小(5)
[]中(10)
[]大(10)

我已经尝试添加facet.limit = -1但它似乎没有做任何事情,也许是一个错误因为我期待这样做我正在寻找的东西?我正在运行solr 4.3.1 .

这是我的查询:
Q =椅子和行数= 10&启动= 0&facet.limit = -1&DEFTYPE = edismax&facet.field =颜色与facet.field =大小与小=真FQ = {标签= colortag!}颜色
:红色和FL = *,得分

Solr有可能吗?我没有遇到任何这方面的例子,我担心解决方案是在前端处理它,缓存无效 .

Edit

所以我添加了facet.mincount = 0,它确实给了我想要的东西 . 问题是,现在将mincount设置为0,我得到的所有方面都不属于搜索结果 . 所以这就是我想要的:

颜色:
[x]红色(10)
[]蓝色(10)
[]绿色(10)

尺寸:
[]小(0)
[]中(5)
[]大(5)

但我实际得到的是:

颜色:
[x]红色(10)
[]蓝色(10)
[]绿色(10)
[]橙色(0)
[]紫色(0)
[]粉红色(0)

尺寸:
[]小(0)
[]中(5)
[]大(5)
[] X-Large(0)
[] XX-大(0)

所以现在我添加了与查询字词不匹配的颜色和大小 . 我意识到它工作正常,但这不是我希望它工作的方式 . 我可以采取另一种方法吗?我确实意识到我可以进行一次调用以获得没有任何选定方面的初始结果,然后再进行第二次调用以获得过滤的方面,然后比较并构建正确的结果 . 我宁愿不做双重呼叫,所以任何帮助将不胜感激 .

2 回答

  • 2

    不要排除 size 的方面,使用 facet.mincount=0facet.limit

    q=chair&rows=10&start=0&facet.limit=-1&defType=edismax&facet.field={!ex=colortag}color&facet.field=size&facet=true&fq={!tag=colortag}color:red&fl=*,score
    
  • 0

    这不是绝对的解决方案 . 使用facet.mincount = 0,尝试设置facet.size.mincount = 0 .

    你可以在这里阅读更多相关信息:http://wiki.apache.org/solr/SimpleFacetParameters

相关问题