Solr 5.2 如何定义一个列表或字符串集合

Solr 5.2 How to define a List or collection of Strings

我是 Solr 的新手,到目前为止非常喜欢它。

我已经能够在 Schema.xml 我的数据类型中定义用于索引和在我的 solr 域对象上使用 Solrj Bean 注释@field 我有我的 Java 应用程序调用 solrClient 并保存它们很棒

不幸的是,我无法看到或理解如何在以太 Schema.xml 或 Java 对象中对字符串集合建模。

我想做的是这样的:

@field
private String someField;
@field
private String anotherField;
@field   
private List<String> someCollectionOfFields;

我不明白我应该如何为这种情况建模,起初我虽然将集合展平为逗号分隔列表并将其定义为字符串,但不明白 Solr 将如何处理它?

因此,如果我有以下 "Big Bus"、"Big Red Bus"、"Big Red Car",我希望将 3 个字符串索引为单独的术语,而不仅仅是 Big 导致所有 3 个都被返回.

我应该这样做吗?

我正在努力寻找如何在文档中为集合建模,我所看到的只是日期字段、货币字段和其他但没有集合,任何帮助都会很好。

谢谢 马克

您的问题的解决方案是 属性 multiValued=true

的 Solr 字段类型

定义一个字段如下

<field name="bustypes" type="string" indexed="true" stored="true" multiValued="true"/>

这将允许为同一文档的同一字段发送多个值。

<add>
    <doc>
        <field name="id">1234</field>
        <field name="bustypes">Big Bus</field>
        <field name="bustypes">Big Red Bus</field>
        <field name="bustypes">Big Red Car</field>
    </doc>
</add>

除上述之外,如果您有对象列表而不仅仅是字符串,则可以使用嵌套(子)文档 here。这将帮助您根据子查询并获取父文档,反之亦然