问题描述
我收到此消息:
文档缺少必填的uniqueKey字段:id
为了在每个文档上填写此字段,我使用:
<updateRequestProcessorChain name="files-update-processor">
<processor class="solr.UUIDUpdateProcessorFactory">
<str name="fieldName">id</str>
</processor>
...
</updateRequestProcessorChain>
默认情况下,此files-update-processor
链接到任何update
:
<initParams path="/update/**">
<lst name="defaults">
<str name="update.chain">files-update-processor</str>
</lst>
</initParams>
另一方面,我已经配置了此数据导入处理程序:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.dataimporthandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
对于此DIH
索引的每个文档,我都会收到此消息:
o.a.s.h.d.solrWriter Error creating document : {code_l_ns=code_l_ns=3160,title_txt_ca=title_txt_ca=Ps. Verdaguer,voreres modificació} => org.apache.solr.common.solrException: Document is missing mandatory uniqueKey field: id
我的data-config.xml
是:
<dataConfig>
<dataSource driver="com.microsoft.sqlserver.jdbc.sqlServerDriver" 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_unicat">
<field column="codi_unitat" name="code_l_ns"/>
<field column="titol" name="title_txt_ca" />
</entity>
</document>
</dataConfig>
有什么想法吗?
解决方法
在schema.xml
中检查是否用"id"
定义了该字段。
您提到的ID为required = true
的字段。
您尝试使用data-config在SOLR中建立索引的文档也不包含此id
字段,因此SOLR会引发此错误。
该问题的解决方案可能是:
将id
字段添加到所有文档中
OR
删除required = true
字段的id
表单架构文件。
请共享您的schema.xml
文件。