# 索引API改变

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

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

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

## 在运行快照时关闭/删除索引

在以前的Elasticsearch版本中，在完整快照期间关闭或删除索引会使快照失败。在5.0中，关闭/删除索引请求将失败。部分快照的行为保持不变：仍然可以在部分快照期间关闭或删除索引。然后将快照结果标记为部分。

## Warmers

由于默认情况下的文档值和基于磁盘的规范的几个更改，加温器不再有用。因此，加热器和温暖的API已被删除：它不再可能注册将在新的IndexSearcher发布之前运行的查询。

不要担心，如果你有暖器定义在你的指数，当升级到5.0时，它们将被忽略。

## 系统CPU统计信息

最近的CPU使用率（百分比）已添加到在节点stats API和cat节点API下报告的操作系统统计数据。这里的断裂更改是在节点stats响应中的os对象中有一个新对象。此对象称为cpu，并包括percent和load_average作为字段。这会将以前是os对象中顶级字段的load_average字段移动到cpu对象。 load_average字段的格式已更改为字段1m，5m和15m分别表示一分钟，五分钟和十五分钟加载的对象。如果这些字段中有任何字段不存在，则表示相应的值不可用。

在cat节点的API响应中，默认情况下输出cpu字段。之前的负载字段已被删除，并被分别代表一分钟，五分钟和十五分钟负载的load_1m，load_5m和load_15m替换。如果相应的值不可用，该字段将为null。

最后，org.elasticsearch.monitor.os.OsStats的API已更改。 getLoadAverage方法已删除。现在可以从OsStats.Cpu＃getLoadAverage获取此值，但它不再是双精度值，而是封装1分钟，5分钟和15分钟负载平均值的对象。此外，最近的CPU使用情况可以从OsStats.Cpu#getPercent获取。

## Suggest统计

通过suggest在索引stats暴露的suggest统计信息已经与search统计信息合并。suggest统计信息作为search统计信息的一部分显示。

## 创建以 - 或+开头的索引

Elasticsearch不再允许以 - 或+开头创建索引，以便多索引匹配和扩展不会混淆。以前可能（但一个非常糟糕的主意）创建以连字符或加号开头的索引。已存在这些前面的字符的任何索引将继续正常工作。

## 别名API

/ _aliases API不再支持indexRouting和index-routing，只有index_routing。它也不再支持searchRouting和index-routing，只有search_routing。这些被删除，因为他们未经测试，我们更喜欢只有一个（显而易见的）方式来做这样的事情。

## OpType创建没有ID

从5.0索引，不再支持带有 op_type=create 而不指定ID的文档。

## Flush API

wait_if_ongoing标志默认已更改为true，导致_flush调用等待和阻止，如果另一个刷新操作当前正在同一个分片上运行。反过来，如果wait_if_ongoing设置为false，并且另一个flush操作已经运行，则会跳过flush并且shard flush调用将立即返回而没有任何错误。在以前的版本中，flush_not_allowed异常为每个跳过的分片报告。