1

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

编辑 更正了提取请求中的错字,但仍然是同样的错误。

4

3 回答 3

5

出于某种原因,Solr 不喜欢字段名称上的“Id”后缀。当我将“documentId”重命名为“document”时,我没有收到任何错误。它在“testId”上也失败了,但是当我重命名为“test”时它就起作用了。有谁知道为什么“Id”字段名称后缀会导致 solr 总是报告缺少必填字段,即使传递了一个值?

于 2012-10-10T15:18:54.663 回答
1

dcoumentId=归档定义使用时看起来有错字documentId

你看出区别了吗?dco……和医生……

于 2012-10-10T14:46:00.863 回答
0

您的字段名称应该是小写字母,例如“documentid”。如果字段名称包含大写字母甚至单个,则 solr 不会将数据保存在字段中。在 solr 的情况下,我们不必遵循骆驼案例约定。所以教训是,如果您想创建一个字段并在其中存储数据,您需要将其设为小案例字段。例如“documentid”或“testid”不是“documentId”或“Documentid”等

于 2020-12-23T11:06:59.877 回答