solr:将两个字段合二为一

时间:2016-02-17 15:40:40

标签: xml solr field

我正在使用Solr 4.3.0,我正在尝试添加一个新字段,该字段在索引中连接另外两个字段。 我在solrconfig.xml中添加了这个:

<processor class="solr.CloneFieldUpdateProcessorFactory">
 <str name="source">session_lieu</str>
 <str name="dest">session_lieu_mois</str>
</processor> 
<processor class="solr.CloneFieldUpdateProcessorFactory"> 
  <str name="source">session_mois</str> 
  <str name="dest">session_lieu_mois</str>
</processor>
<processor class="solr.ConcatFieldUpdateProcessorFactory">
  <str name="fieldName">session_lieu_mois</str> 
  <str name="delimiter">_</str> 
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>

但仍然无法工作!
我该怎么办? 谢谢你的帮助

我补充说:

  <requestHandler name="/update" class="solr.UpdateRequestHandler">
    <!-- See below for information on defining 
         updateRequestProcessorChains that can be used by name 
         on each Update Request
      -->
    <!--
       <lst name="defaults">
         <str name="update.chain">dedupe</str>
       </lst>
       -->

  <lst name="defaults">
      <str name="update.chain">concatenation</str>
    </lst>       
  </requestHandler>

1 个答案:

答案 0 :(得分:0)

您是否在solrconfig中更新了/update hanlder?

 <requestHandler name="/update" class="solr.XmlUpdateRequestHandler" >
    <lst name="defaults">
      <str name="update.chain">your chain name here</str>
    </lst>
  </requestHandler>

您还需要查看Deduplication

修改

如下所示更新requestHandler,因为不推荐使用XmlUpdateRequestHandler。 确保session_lieu_mois 存在作为架构中的字段,或者通过在字段名称末尾添加_s来创建动态字段。

     <requestHandler name="/update/processortest" class="solr.UpdateRequestHandler" >
   <lst name="defaults">
     <str name="update.chain">concatenation</str>
   </lst>
 </requestHandler>

这将创建一个单独的请求处理程序。要进行上述测试,请转到solr管理控制台下的文档选项卡。

solr console

但是,如果您想在调用数据导入时调用处理器链,则可以在dataimport requesthandler下添加处理器链,如下所示

<requestHandler name="/dataimport"
    class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
    <str name="config">data-config.xml</str>
    <str name="update.chain">concatenation</str>
    </lst>
    </requestHandler>

因此,当调用dataimport时,也会同时调用您的处理器链。