solr DIH:生成标识值



我需要将数据库数据导入solr。

我正在使用这个data-config.xml:

<dataConfig>
<dataSource driver="org.hsqldb.jdbcDriver" url="jdbc:sqlserver://192.168.122.1;databaseName=giac_txt" user="sa" password="StR0nGp4ss."/> 
<document>
<entity name="item" query="select codi_unitat, titol from anc_uniciac>
<field column="codi_unitat" name="code_l_ns"/>
<field column="titol" name="title_txt_ca" />
</entity>
</document>
</dataConfig>

当我需要生成一个id时,问题就出现了,因为我的模式需要和id:

<schema name="example-data-driven-schema" version="1.6">
<uniqueKey>id</uniqueKey>
...

有什么想法吗?

编辑

我已经查看了solrconfig.xml:

<updateRequestProcessorChain name="files-update-processor">
<!-- UUIDUpdateProcessorFactory will generate an id if none is present in the incoming document -->
<processor class="solr.UUIDUpdateProcessorFactory" />

默认情况下,它在任何update:上都是链接的

<initParams path="/update/**">
<lst name="defaults">
<str name="update.chain">files-update-processor</str>
</lst>
</initParams>

这是否意味着uuid是默认生成的?

UUID是通用唯一标识符的缩写。如果你没有solr中插入的文档的id,你可以使用if。

当您需要更新或删除文档时,unique id字段非常有用,因为Solr中的常规搜索无法唯一识别文档。

solrconfig.xml中添加以下配置。

<updateRequestProcessorChain>

<processor class="solr.UUIDUpdateProcessorFactory">
<str name="fieldName">id</str>
</processor>

<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>

相关内容

  • 没有找到相关文章

最新更新