[英]Solr - Missing Required Field
Solr 报告它缺少必填字段 (documentId),但该字段和值正在传递给 Solr。 从架构:
<fields>
<field name="id" type="string" indexed="true" stored="true" required="true" />
<field name="documentId" type="string" indexed="true" stored="true" required="true" />
</fields>
根据 Solr 日志,正在传入 documentId:
org.apache.solr.core.SolrCore execute
INFO: [] webapp=/solr path=/update/extract params={waitSearcher=true&commit=true
&literal.id=C:\documents\102\Comps+Database+BRD.docx&literal.documentId=102&w
t=javabin&waitFlush=true&version=2} status=400 QTime=489
为什么 Solr 会报告:
org.apache.solr.common.SolrException log
SEVERE: org.apache.solr.common.SolrException: [doc=C:\documents\102\test.docx]
missing required field: documentId
编辑更正了提取请求中的错字,但仍然是同样的错误。
出于某种原因,Solr 不喜欢字段名称上的“Id”后缀。 当我将“documentId”重命名为“document”时,我没有收到任何错误。 它在“testId”上也失败了,但是当我重命名为“test”时它起作用了。 有谁知道为什么“Id”字段名称后缀会导致 solr 总是报告丢失的必填字段,即使传递了一个值?
看起来有一个错字dcoumentId=
而归档定义使用documentId
你看出区别了吗? dco……和医生……
您的字段名称应该是小写字母,如“documentid”。 如果字段名称包含大写字母,即使只有一个,solr 也不会将数据保存在字段中。 在 solr 的情况下,我们不必遵循骆驼案例约定。 所以教训是,如果您想创建一个字段并在其中存储数据,则需要将其设置为小写字段。 例如“documentid”或“testid”而不是“documentId”或“Documentid”等
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.