我试图从solr中导入数据
User Field1 Field2 Field3
a b c
1 d e f
2 a b c
然而,我在组织领域方面有困难。我为字段1、2和3定义了multiValue=true
,但导入的文档看起来像
doc {
id: 1,
field1:[a,d],
field2:[b,e],
field3:[c,f]
}
这不是预期的结果。我想要的是
doc {
id: 1,
property:[a,b,c]
property:[d,e,f]
}
表示给定id的所有相关字段应分组到一个实体中。
我应该如何定义我的模式?
我当前的schema是这样的:
<Entity name="main">
field id
<SubEntity name="related">
field1
field2
field3
</SubEntitiy>
您不能仅仅通过定义字段来实现这一点,您还必须以这种方式将数据发送到SOLR。
定义如下
<field name="id" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="field1" type="string" indexed="true" stored="true" multiValued="true"/>
<field name="field2" type="string" indexed="true" stored="true" multiValued="true"/>
<field name="field3" type="string" indexed="true" stored="true" multiValued="true"/>
索引数据的文档应该如下所示
<add>
<doc>
<field name="id">1234</field>
<field name="field1">a</field>
<field name="field1">b</field>
<field name="field1">c</field>
<field name="field2">d</field>
<field name="field2">e</field>
<field name="field2">f</field>
<field name="field3">a</field>
<field name="field3">b</field>
<field name="field3">c</field>
</doc>
</add>
从你的描述中,看起来你有正确的模式配置,但缺少的是你索引数据的方式。