我正在使用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>
答案 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管理控制台下的文档选项卡。
但是,如果您想在调用数据导入时调用处理器链,则可以在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时,也会同时调用您的处理器链。