Solr分面搜索 - 如何在Solr查询界面上指定多个字段?

13

我是solr的新手,正在尝试使用solr。 有没有人能够解释一下如何为给定搜索指定多个分面字段。

我正在使用Solr Admin UI /查询选项卡,它只允许我指定一个字段。 但是,我想要在我的公司搜索中对多个字段进行分面搜索,例如地区、行业、股票交易所等。

我已经查阅了solr wiki和相关文档链接,例如下面这个链接: http://docs.lucidworks.com/display/solr/Query+Screen

但是,它们都没有说明如何指定多个字段。我想构建像通常的亚马逊/沃尔玛等搜索界面那样,提供多个分面和计数,以便在计划的公司搜索页面上搜索产品。


通过多重嵌套的 facet 搜索到了这个问题,如果有其他人也在寻找类似的内容(例如每月正面、负面和中立评论总数),以下是一些链接:http://yonik.com/solr-subfacets/ - HMR
通过Solr面板(UI)是否可以实现相同的功能? - Nikhil Sahu
5个回答

17

您可以查询多个维度字段。只需使用以下语法:

.../select?q=&facet=true&facet.field=<field1>&facet.field=<field2>

3
看起来你已经搞定了。但是为了明确起见,因为我有点困惑。你需要使用“原始查询参数”字段来完成这个任务。 - Ben Scheib
这似乎在7.0.0版本中无法正常工作。SolrException,未定义的字段:“field1,field2”。 - McGarnagle
1
这在最近的Solr中完全正常,<field1><field2>是占位符--你应该用你数据中的字段名替换这些值。 - duhaime

2
你正在寻找 json.facet
它从solr 5开始提供(一些高级功能从solr 6开始提供)。基本上这意味着你可以通过json将你的facet搜索参数插入到url中。
它看起来像这样(现场示例):
&facet=true&json.facet={"filed1":{"type":"terms","field":"filed1","limit":2000},"filed2":{"type":"terms","field":"filed2","limit":2000}}

还有一个更短的版本:

&facet=true&json.facet={"field1":{"terms":"field1"},"field2":{"terms":"field2"}}

您可以在这里找到更多信息。


2
当您在Solr Query UI中执行搜索时,它会显示发送到Solr的实际URL在结果窗格上方。单击该URL,它将在浏览器中打开一个新窗口到该URL。从那里,您可以添加其他参数到URL以在多个字段上进行聚合,通过添加其他&facet.field=<your field>条目。
请参阅 Solr Faceting Parameters参考了解更多详细信息和其他选项。


0
Solr管理界面允许您指定多个facet字段,即在facet.field参数中的字段csv。 您需要勾选facet复选框,然后您将获得更多选项。
如果您正在使用链接查询Solr,则链接应如下所示- facet=true&facet.field=field1&facet.field=field2

4
也许这在2013年可以行得通,但在最近一个版本8.2中,只有在URL中指定才有效,而不是在管理员面板提供的编辑字段中。管理员面板中的编辑字段仅适用于一个字段。以CSV格式放置两个字段:FieldA,FieldB会创建一个错误的单一字段facet.field="FieldA, FieldB",并出现在生成的URL中。然而,如果您编辑生成的查询以将它们分开为facet.field=FieldA&facet.field=FieldB,那么它当然可以工作。但请求者希望直接使用管理员用户界面,而您的答案表明他们可以这样做。 - nrshapiro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接