首页 > 解决方案 > 文档缺少必填的 uniqueKey 字段:id

问题描述

尝试将文档添加到 Solr (7.7.2) 时出现此错误

这是产生错误的最小化文档

{
  "add": {
    "doc": {
      "id": "DOC1",
      "deleted": true
    }
  }
}

以及与之配套的最小化架构

<?xml version="1.0" encoding="UTF-8"?>
<schema name="Master" version="1.6">
    <uniqueKey>id</uniqueKey>
    <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
    <fieldType name="string" class="solr.StrField" sortMissingLast="true"/>

    <field name="deleted" type="boolean" multiValued="false" indexed="true" stored="true" />
    <field name="id" type="string" required="true" indexed="true" stored="true"/>
    
    <!-- ignore all other fields -->
    <dynamicField name="*" type="ignored"/>

</schema>

当我只提交文件时

{
 "id": "DOC1",
 "deleted": true
}

然后它可以工作,但我想将它与其他文件/命令一起提交。

我了解该消息的含义,即我正在尝试提交没有必填字段“id”的文档,但是我提交的内容具有该字段,因此我不明白为什么会出现错误。任何帮助,将不胜感激。

标签: solr

解决方案


我想知道 Admin UI 是否不支持您使用的格式,文档不是很清楚。

您可以尝试使用 cURL。将你的 JSON 保存到一个文件中,比如“sample.json”,下面的命令应该这样做:

curl -X POST -H "Content-Type: application/json" -d "@sample.json" http://localhost:8983/solr/your-solr-core/update?commit=true

推荐阅读