繁体   English   中英

Solr的每个场的多个面

[英]Multiple facets per field with Solr

默认情况下,Solr返回字段的构面,然后如果为该字段选择构面值,则不再返回所有其他先前的选项作为该字段的构面的一部分。

我正在尝试开发一个更像亚马逊搜索引擎(基于他们自己的A9搜索引擎,因此可能类似于Amazon CloudSearch)的搜索引擎。

当您缩小到亚马逊搜索的某些“方面”时,如果您要将该区域添加到搜索中,它们将继续显示其他选项以及计数。

在Solr中有没有内置的方法可以做到这一点? 如果没有,我将如何滚动自己。 显然我需要缓存为该字段返回的原始方面。 但是,一旦我已经为该领域选择了一个(或多个)方面,那么计算其他方面区域的计数的最有效方法是什么。 显然,当选择其他构面时,您在这些值之间进行“OR”查询,因为您尝试使用这两个值中的任何一个来显示事物。

例如,我在亚马逊的珠宝部门搜索钻石戒指,然后缩小到黄金作为金属类型。 然后我可以选择多个克拉面:

亚马逊分面示例

有人可以举例说明我如何(有效地)使用Solr做到这一点吗?

对于未来版本的Solr,是否有任何功能可以提供开箱即用的功能(假设它不在盒子中)?

在Solr中Tagging and excluding Filters功能可能是您正在寻找的功能,这里是Wiki链接解释Multi Select Faceting

例如 :../ 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进行多选择分面的工作方式略有不同。 您仍以相同的方式标记过滤器,但存在不同的排除语法。

&q="running shorts"
&fq={!tag=COLOR}color:(Blue Black)
&json.facet={
      sizes:{type:terms, field:size},
      colors:{type:terms, field:color, domain:{excludeTags:COLOR} },
      brands:{type:terms, field:brand, domain:{excludeTags:BRAND} }
}

注意选择蓝色或黑色项目的过滤器上的tag = COLOR。 当我们面对颜色时,我们想要忽略(或排除)带有该标签的过滤器,这样我们仍然可以获得其他颜色计数。 这就是域名:{excludeTags:COLOR}。

此示例来自http://yonik.com/multi-select-faceting/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM