我想知道是否可以使用 solr query :
以下查询将有效:
http://localhost:8983/solr/select/? q=*:*&version=2.2&rows=0&facet=true&facet.field=location1&facet.field=location2
响应:
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">13</int>
</lst>
<result name="response" numFound="7789" start="0"/>
<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="location1">
<int name="Chicago">100</int>
<int name="NewYork">50</int>
<int name="Washington">30</int>
</lst>
<lst name="location2">
<int name="Washington">200</int>
<int name="Philadelphia">100</int>
<int name="Chicago">50</int>
</lst>
<response>
我需要的是将location1和location2分组并得到以下结果:
Washington :230
Chicago :50
Philadelphia:100
Washington :30
目前我们在服务层进行此操作。但这可以使用solr中的结果分组来完成吗?我理解的是结果分组给出了所有数据的汇总,但没有做一个方面主题聚合。
答案 0 :(得分:0)
Solr没有support Grouping on Multivalued个字段。
Support for grouping on a multi-valued field has not yet been implemented.
您可以使用组合值在索引处创建新字段,并使用字段进行分面。
编辑: - 使用复制字段将两个字段的内容复制到单个字段并在其上执行构面。只需要架构更改和重建索引数据
答案 1 :(得分:0)
您需要将location1
和location2
存储在一个多值字段中,例如locations
。然后,您可以发出此facet查询以获得所需内容:
q=*:*&rows=0&facet=true&facet.field=locations