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

来源:互联网 发布:ios远程访问mac 编辑:程序博客网 时间:2024/05/29 17:25

数据库中无关联的多表导入到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中:

 注释掉:

  1. <searchComponent name="elevator" class="solr.QueryElevationComponent" >  
  2.   <str name="queryFieldType">string</str>  
  3.   <str name="config-file">elevate.xml</str>  
  4. </searchComponent>  
添加:
  1. <updateRequestProcessorChain name="uuid">  
  2.     <processor class="solr.UUIDUpdateProcessorFactory">  
  3.         <str name="fieldName">uuid</str>  
  4.     </processor>  
  5.     <processor class="solr.RunUpdateProcessorFactory" />  
  6. </updateRequestProcessorChain>  
修改:
  1. <requestHandler name="/update" class="solr.UpdateRequestHandler">  
  2.     <!-- See below for information on defining   
  3.          updateRequestProcessorChains that can be used by name   
  4.          on each Update Request  
  5.       -->  
  6.     <!--  
  7.        <lst name="defaults">  
  8.          <str name="update.chain">dedupe</str>  
  9.        </lst>  
  10.        -->  
  11.     <lst name="defaults">  
  12.         <str name="update.chain">uuid</str>  
  13.     </lst>  
  14.   </requestHandler>  

0 0