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