如何在 Solr 的多值字段中搜索包含 2 个或更多条目的文档?
How to search over documents with 2 or more entries in multivalued field in Solr?
我有一个允许多值字段的模式,我如何构建一个搜索,该搜索只包含 returns 个在该字段中有 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>
搜索将 return 仅记录 A 和 C,因为它们在 MultivaluedField
中有 2 个条目,即使它们是不同的条目。
最简单(也是最有效)的方法是索引包含值计数和现有值的整数值,因此您有一个 multiValued_count
字段。该字段可以被索引,您可以进行高效的范围查询和精确值查找。
如果需要,您可以直接在索引代码中或在更新处理器中执行此操作。
我有一个允许多值字段的模式,我如何构建一个搜索,该搜索只包含 returns 个在该字段中有 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>
搜索将 return 仅记录 A 和 C,因为它们在 MultivaluedField
中有 2 个条目,即使它们是不同的条目。
最简单(也是最有效)的方法是索引包含值计数和现有值的整数值,因此您有一个 multiValued_count
字段。该字段可以被索引,您可以进行高效的范围查询和精确值查找。
如果需要,您可以直接在索引代码中或在更新处理器中执行此操作。