繁体   English   中英

Solr - 缺少必填字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM