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。这将帮助您根据子查询并获取父文档,反之亦然
我是 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。这将帮助您根据子查询并获取父文档,反之亦然