在平面多值字段上搜索

Searching on flat multivalue fields

假设我有一个名为 myfield 的多值字段和一些包含 myfield.

中某些值的文档

现在我开始这样的查询:

myfield:foobar

结果将是这样的:

<doc>
  <arr name="myfield">
    <str>foobar_1</str>
    <str>foobar_2</str>
  </arr>
</doc>
<doc>
  <arr name="myfield">
    <str>foobar_3</str>
    <str>foobar_4</str>
  </arr>
</doc>

但我不希望结果被文件分隔。我想要它平坦,像这样:

<arr name="myfield">
  <str>foobar_1</str>
  <str>foobar_2</str>
  <str>foobar_3</str>
  <str>foobar_4</str>
</arr>

这在某种程度上可能吗?对我有什么好的提示吗?


让我们试着解释一下我想做的事:

我的 solr 索引的每个文档都有一个符号列表(存储在多值字段中)。现在我想搜索和浏览那些符号。

我需要一个特殊的评分结果,所以我要写我自己的 QParserPlugin

我认为 solr 不可能做到这一点。 Solr 将始终 return 一份文档,说明它是如何构建的。当您在 schema.xml.

中定义文档时

如果您想删除文档并获得普通结果,则必须在 java 末尾添加一些逻辑以删除文档并仅获取字段。

如果您只需要一个字段中的所有术语 - 使用构面或术语组件。由于您显然对文档本身不感兴趣,因此可能需要一个方面。