【问题标题】:Solr multiValue field manipulationSolr 多值字段操作
【发布时间】:2015-08-04 00:06:37
【问题描述】:

我试图将数据从 solr 导入

用户字段1 字段2 字段3

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>

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    你不能仅仅通过定义字段来实现这一点,你还必须以这种方式将数据发送到 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>
    

    根据您的描述,您似乎拥有正确的架构配置,但缺少的是索引数据的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      相关资源
      最近更新 更多