数据库教程:linux环境下解决solr7.4服务器多表导入数据覆盖的问题

问题溯源(导致solr数据覆盖可能原因):因为是多表的原因,可能在将mysql数据库导入到solr索引库中会出现不同数据相同id,而在solr实例schema配置会将id作为solr索引库的主键id,这样因为id的相同会导致不同的数据覆盖,丢失数据解决方法(不是唯一):1.在solrhome实例schema配置中添加<fieldType name=”uuid” class=”solr.UUIDField” indexed=”true”/> <field name=”uuid” t


问题溯源(导致solr数据覆盖可能原因):

因为是多表的原因,可能在将mysql数据库导入到solr索引库中会出现不同数据相同id,而在solr实例schema配置会将id作为solr索引库的主键id,这样因为id的相同会导致不同的数据覆盖,丢失数据

解决方法(不是唯一):

1.在solrhome实例schema配置中添加

<fieldType name="uuid" class="solr.UUIDField" indexed="true"/>  <field name="uuid" type="uuid" indexed="true" stored="true" required="true"/> 

2.在solrhome实例schema配置中修改

<uniqueKey>uuid</uniqueKey>(uuid原本为id) <field name="_root_" type="uuid" docValues="false" indexed="true" stored="false"/>(type属性默认为string,要与主键id属性保持一致) 

3.在solrconfig.xml文件中添加

<requestHandler name="/dataimport" class="solr.DataImportHandler">     <lst name="defaults">       <str name="config">data-config.xml</str>       <str name="update.chain">uuid</str>(新添加的)     </lst>   </requestHandler> 

再添加

<updateRequestProcessorChain name="uuid">     <processor class="solr.UUIDUpdateProcessorFactory">         <str name="fieldName">uuid</str>     </processor>     <processor class="solr.RunUpdateProcessorFactory" /> </updateRequestProcessorChain> 

最后重启solr服务器,数据重新导入

需要了解更多数据库技术:linux环境下解决solr7.4服务器多表导入数据覆盖的问题,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/814281.html

(0)
上一篇 2021年9月14日
下一篇 2021年9月14日

精彩推荐