我需要将数据库数据导入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>