type=mapper_parsing_exception, reason=Field [_id] is a metadata field and cannot be added inside a document. Use the index API request parameters
时间: 2024-03-05 13:52:44 浏览: 381
这个错误通常是由于在文档中直接添加了 `_id` 字段,而 `_id` 字段是元数据字段,不能直接添加到文档中。相反,您应该使用索引API请求参数指定文档的 `_id` 值。
例如,在使用Elasticsearch的Java客户端API时,您可以使用以下代码将文档添加到索引:
```java
IndexRequest request = new IndexRequest("index_name", "doc_type", "document_id");
request.source(jsonString, XContentType.JSON);
IndexResponse response = client.index(request, RequestOptions.DEFAULT);
```
在这个例子中,您可以看到我们在 `IndexRequest` 中指定了文档的 `_id` 值。在 `source` 方法中,我们可以将文档的JSON表示作为字符串传递,并指定其内容类型为 `XContentType.JSON`。
如果您正在使用REST API,那么您可以使用以下 `PUT` 请求将文档添加到索引:
```
PUT index_name/doc_type/document_id
{
"field1": "value1",
"field2": "value2"
}
```
在这个例子中,我们在请求URL中指定了文档的 `_id` 值,并将文档的JSON表示作为请求体发送。请注意,这个请求仅适用于添加新文档,不能用于更新具有现有 `_id` 值的文档。
阅读全文