默认情况下,Solr返回字段的构面,然后如果为该字段选择构面值,则不再返回所有其他先前的选项作为该字段的构面的一部分 .
我正在尝试开发一个更像亚马逊搜索引擎(基于他们自己的A9搜索引擎,因此可能类似于Amazon CloudSearch)的搜索引擎 .
当您缩小到亚马逊搜索的某些“方面”时,如果您要将该区域添加到搜索中,它们将继续显示其他选项以及计数 .
在Solr中有没有内置的方法可以做到这一点?如果没有,我将如何滚动自己 . 显然我需要缓存为该字段返回的原始方面 . 但是,一旦我已经为该领域选择了一个(或多个)方面,那么计算其他方面区域的计数的最有效方法是什么 . 显然,当选择其他构面时,您在这些值之间进行“OR”查询,因为您尝试使用这两个值中的任何一个来显示事物 .
例如,我在亚马逊的珠宝部门搜索钻石戒指,然后缩小到黄金作为金属类型 . 然后我可以选择多个克拉面:
有人可以举例说明我如何(有效地)使用Solr做到这一点吗?
对于未来版本的Solr,是否有任何功能可以提供开箱即用的功能(假设它不在盒子中)?
2 回答
Solr中的
Tagging and excluding Filters
功能可能是您正在寻找的功能,这里是Wiki链接解释Multi Select Faceting .Ex: :../ solr / select /?q = *&trs = 0&facet = on&fq = {!tag = krt} KARAT:10k_Gold&facet.field = {!ex = krt} KARAT
自从Solr 1.4以来我就会出现这个功能 .
使用Solr的新JSON Facet API进行多选择分面的工作方式略有不同 . 您仍以相同的方式标记过滤器,但存在不同的排除语法 .
注意选择蓝色或黑色项目的过滤器上的tag = COLOR . 当我们面对颜色时,我们想要忽略(或排除)带有该标签的过滤器,这样我们仍然可以获得其他颜色计数 . 这就是域名:{excludeTags:COLOR} .
这个例子取自http://yonik.com/multi-select-faceting/