Solr多值字段操作



我试图从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>

从你的描述中,看起来你有正确的模式配置,但缺少的是你索引数据的方式。

最新更新