Solr 分配唯一id';它跨越所有文档及其子文档
因此,情况如下:Solr 分配唯一id';它跨越所有文档及其子文档,solr,Solr,因此,情况如下: Solr直接在数据库上进行数据导入 我有一个表项目,它与单位有关系。一个项目最多可容纳5个单元 从数据库自动生成ID,从1开始 每个表的ID都是唯一的,但不跨数据库 因为Solr要求每个文档都有一个唯一的ID,所以我创建了一个字段solrId,它从Solr.UUIDUpdateProcessorFactory获取其ID 然而,dataimport只获取几个项目,没有任何单元。有人能给我指出正确的方向吗 有关段落: solrconfig.xml: <updateRequ
- Solr直接在数据库上进行数据导入
- 我有一个表项目,它与单位有关系。一个项目最多可容纳5个单元
- 从数据库自动生成ID,从1开始
- 每个表的ID都是唯一的,但不跨数据库
<updateRequestProcessorChain name="uuid">
<processor class="solr.UUIDUpdateProcessorFactory">
<str name="fieldName">solrId</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
....
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">wiensued-data-config.xml</str>
<str name="update.chain">uuid</str>
</lst>
</requestHandler>
<uniqueKey>solrId</uniqueKey>
<fieldType name="uuid" class="solr.UUIDField" indexed="true" />
<!-- solrId is the real ID -->
<field name="solrId" type="uuid" multiValued="false" indexed="true" stored="true" />
<!-- the ID from the database -->
<field name="id" type="int" multiValued="false" indexed="true" stored="true"/>
不过,据我所知,solrId是提供的只要在dih配置中修复这个问题,它就会更干净、更容易 只需在项目id前面加一个“p”就可以创建id,并将其提供给solr。同样,对于单位(在“u”之前)。你明白了:
<entity name="project" pk="id" query="select concat('p', id) as solrid, ...
不知道你能做到!非常感谢你!
<entity name="project" pk="id" query="select concat('p', id) as solrid, ...