# 在5.1 重大改变

原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.3/breaking-changes-5.1.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/breaking-changes-5.1.html)

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

贡献者 : [片刻](/display/~jiangzhonglian) [ApacheCN](/display/~apachecn) [Apache中文网](/display/~apachechina)

## 指数API更改

### 别名根据（大部分）索引名称的规则进行验证

别名现在根据验证索引名称的几乎相同的规则验证。唯一的区别是允许别名具有大写字符。这意味着别名可能不是：

*   以_， - 或+开头
*   包含＃，\，/，*，？，“，&lt;，&gt;，|，`，`
*   超过100个UTF-8编码字节
*   确切地说 . 或者 ..

仍然支持5.1.0之前版本创建的别名，但不会添加违反这些规则的新别名。由于在弹性搜索中修改别名是删除它并使用_aliases API以原子方式重新创建它，所以也不再支持修改具有无效名称的别名。

## Java API更改

## Log4j依赖关系已升级

Log4j依赖关系从版本2.6.2升级到版本2.7。如果您在应用程序中使用传输客户端，则应相应地更新Log4j依赖项。

## 本地发现已被删除

本地发现已被删除;这种发现实现在部落服务内部使用，并在同一个JVM内运行多个节点的测试。这意味着将discovery.type设置为local将在启动时失败。

## 插件API更改

## UnicastHostsProvider现在拉基础

插入一个UnicastHostsProvider的禅宗发现现在是拉基础。实现一个DiscoveryPlugin并覆盖getZenHostsProviders方法。现在也可以使用单独的设置discovery.zen.hosts_provider来完成主机提供程序的选择。

## ZenPing和MasterElectService可插拔性被删除

这些类不再可插拔。实现您自己的发现，或从ZenDiscovery扩展，并根据需要进行自定义。

## onModule支持已删除

插件以前可以实现名为onModule的方法，它使用了一个Guice模块。所有用于插入自定义行为的onModule的使用现已转换为基于pull的插件，而onModule的钩子已被删除。

## 其他API更改

## 指数统计信息和节点统计信息API无法识别的指标

索引统计信息和节点统计信息API允许查询Elasticsearch的各种指标。以前版本的Elasticsearch将默认接受无法识别的度量标准（例如：“transprot”）。在5.1.0中，情况不再如此;无法识别的指标将导致请求失败。这是一个例外，它是5.0.0中删除的渗透度量度，但是对于这些度量的请求将仅在5.1.0开始的5.x系列中产生警告，并将像6.0.0中的任何其他无法识别的度量一样失败。