您的位置:首页 > 产品设计 > UI/UE

用solr uuid解决多表导入数据库问题

2014-10-30 13:45 218 查看
数据库中无关联的多表导入到solr中的解决办法(防止id被覆盖)

这个值实用与多表的全量导入的情况,增量导入暂时还不适用此办法解决。

1、在schema中添加

<field name="uuid" type="uuid" indexed="true" stored="true" required="true" multiValued="false" />  

id 那行改成<field name="id" type="int" indexed="true" stored="true"/>

添加: <fieldType name="uuid" class="solr.UUIDField" indexed="true" /> 

将 这行改成:<uniqueKey>uuid</uniqueKey>

2、在solrconfig.xml中:

 注释掉:

<searchComponent name="elevator" class="solr.QueryElevationComponent" >  

  <str name="queryFieldType">string</str>  

  <str name="config-file">elevate.xml</str>  

</searchComponent>  
添加:

<updateRequestProcessorChain name="uuid">  

    <processor class="solr.UUIDUpdateProcessorFactory">  

        <str name="fieldName">uuid</str>  

    </processor>  

    <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">uuid</str>  

    </lst>  

  </requestHandler>  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: