如何在Solr中的多值字段中搜索包含2个或更多条目的文档?

时间:2016-10-22 01:17:18

标签: solr lucene multivalue

我有一个允许多值字段的模式,如何构建仅返回该字段中包含2个或更多条目的文档的搜索?例如,在这个数据子集中:

<doc>
<str name="id">A</str>
<arr name="multivaluedField">
  <str>One</str>
  <str>Two</str>
</arr></doc>

<doc>
<str name="id">B</str>
<arr name="multivaluedField">
  <str>One</str>
</arr></doc>

<doc>
<str name="id">C</str>
<arr name="multivaluedField">
  <str>Three</str>
  <str>Four</str>
</arr></doc>

搜索将返回文档A和C,因为它们在MultivaluedField中有2个条目,即使它们是不同的条目。

1 个答案:

答案 0 :(得分:2)

最简单(也是最有效)的方法是索引一个包含值计数和现有值的整数值,因此您有一个multiValued_count字段。可以对此字段建立索引,您可以执行有效范围查询和精确值查找。

如果需要,您可以直接在索引代码中或在更新处理器中执行此操作。