在平面多值字段上搜索
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 末尾添加一些逻辑以删除文档并仅获取字段。
如果您只需要一个字段中的所有术语 - 使用构面或术语组件。由于您显然对文档本身不感兴趣,因此可能需要一个方面。
假设我有一个名为 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 末尾添加一些逻辑以删除文档并仅获取字段。
如果您只需要一个字段中的所有术语 - 使用构面或术语组件。由于您显然对文档本身不感兴趣,因此可能需要一个方面。