是否可以结合多个字段进行 Solr 分面,例如 RMDB 中多个列上的不同?
Posted
技术标签:
【中文标题】是否可以结合多个字段进行 Solr 分面,例如 RMDB 中多个列上的不同?【英文标题】:Is it possible to do Solr faceting combining multiple fields, like distinct on multiple columns in RMDB? 【发布时间】:2012-12-01 02:17:44 【问题描述】:假设我想对文档中两个字段的组合进行分面。
例如:
Field1 Field2
A B
C D
A B
A C
C B
C D
会有类似的构面结果
AB [2]
CD [2]
AC [1]
CB [1]
这可能吗?我的意思是动态,这意味着字段是随机选择的,因此无法在索引期间创建复制字段。
【问题讨论】:
【参考方案1】:您可以使用 Solr 4.0 上提供的 Pivot Facets 对两个字段进行分组。
您可以在索引上运行以下查询来获取它。
http://localhost:8181/solr/collection1/select?q=*:*&facet=true&facet.pivot=field1,field2
然后,结果会是这样的:
<lst name="facet_pivot">
<arr name="field1,field2">
<lst>
<str name="field">field1</str>
<str name="value">A</str>
<int name="count">3</int>
<arr name="pivot">
<lst>
<str name="field">field2</str>
<str name="value">B</str>
<int name="count">2</int>
</lst>
<lst>
<str name="field">field2</str>
<str name="value">C</str>
<int name="count">1</int>
</lst>
</arr>
</lst>
<lst>
<str name="field">field1</str>
<str name="value">C</str>
<int name="count">3</int>
<arr name="pivot">
<lst>
<str name="field">field2</str>
<str name="value">D</str>
<int name="count">2</int>
</lst>
<lst>
<str name="field">field2</str>
<str name="value">B</str>
<int name="count">1</int>
</lst>
</arr>
</lst>
</arr>
</lst>
【讨论】:
这就是我想要的。我确信我可以通过这个结果得到我预期的最终形式。但问题是我目前的项目仍然使用 Solr4(3.5) 之前的项目。是否有适用于 3.5 的方法? 这里还有另一种方法,但我不知道它是否能解决您的问题。至少你可以试试。 loose-bits.com/2011/09/20/pivot-facets-solr.html以上是关于是否可以结合多个字段进行 Solr 分面,例如 RMDB 中多个列上的不同?的主要内容,如果未能解决你的问题,请参考以下文章