Solr multiValue字段操作

时间:2015-08-02 02:56:49

标签: solr lucene

我试图将数据导入solr

用户Field1 Field2 Field3

1 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的所有相关字段应分组为一个实体。

我应该如何定义架构?

我当前的架构如下:

<Entity name="main">
        field id
    <SubEntity name="related">
          field1
          field2
          field3
    </SubEntitiy>

1 个答案:

答案 0 :(得分:0)

只有在定义字段的帮助下才能实现这一点,您必须以这种方式将数据发送到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"/>

Doc索引数据应该如下

<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>

根据您的描述,您看起来已经有了正确的架构配置,但缺少的是索引数据的方式。