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

数据库中无关联的多表导入到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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值