# 文档API改变

原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_document_api_changes.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_document_api_changes.html)

译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=4260778](http://www.apache.wiki/pages/viewpage.action?pageId=4260778)

贡献者 : [片刻](/display/~jiangzhonglian)

## ?refresh 不再支持truthy和falsy值

?refresh 请求参数用于接受除false之外的任何值，0，off和no意味着“使来自此请求的更改立即可用于搜索”。现在它只接受？refresh 和 ?refresh=true 意味着。您可以将其设置为

?refresh=false，并且请求将不执行与刷新相关的操作。如果你把 **refresh **关闭的url完全相同。如果添加 refresh=wait_for Elasticsearch将等待更改在回应请求之前变为可见，但不会执行任何即时刷新相关操作。参见 _`[?refresh](https://www.elastic.co/guide/en/elasticsearch/reference/5.0/docs-refresh.html) `_。

## created字段在Index API中已弃用

created字段已在Index API中弃用。它现在返回操作，在创建文档时返回 "operation": "create"，在更新文档时返回 "operation": "index"。这也适用于index批量操作。

## found字段在Delete API中已弃用

found字段已在Delete API中弃用。它现在返回操作，返回“操作”：“删除”时删除一个文档和“操作”：“noop”，当没有找到文档。这也适用于索引批量操作。

## 重新索引和按查询更新

在5.0.0之前_reindex和_update_by_query仅重试批量失败，因此他们使用以下响应格式：

```
{
   ...
   "retries": 10
   ...
}
```

重试计数批量重试的次数。现在他们也在搜索失败时重试，并使用此响应格式：

```
{
   ...
   "retries": {
     "bulk": 10,
     "search": 1
   }
   ...
}
```

其中批量计数、批量重试的次数，搜索计数为搜索重试的次数。

## 获取API

从5.0.0开始，如果请求的文档自上次刷新以来已更改，但更改尚未刷新，则get API将发出刷新。这也将使所有其他更改立即可见。如果使用读取修改更新模式非常频繁地更新同一文档，这可能会对性能产生影响，因为它可能会创建许多小段。可以通过将 realtime=false 传递给get请求来禁用此行为。

fields字段已重命名为stored_fields

## mget API

fields字段已重命名为stored_fields

## 更新API

fields字段已被弃用。您应该使用_source从_source加载字段。

## 批量API

fields字段已被弃用。您应该使用_source从_source加载字段。