# 5.3.0 版本说明

原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.3/release-notes-5.3.0.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/release-notes-5.3.0.html)

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

贡献者 : [secscorpio](/display/~zhangliangliang)，[ApacheCN](/display/~apachecn)，[Apache中文网](/display/~apachechina)

### Breaking changes（重大变化）

Query DSL

*   修复了 **enabled_position_increments** 的名称 [#22895](https://github.com/elastic/elasticsearch/pull/22895)

Search

*   删除了搜索类型 **DFS_QUERY_AND_FETCH** [#22787](https://github.com/elastic/elasticsearch/pull/22787)

### Breaking Java changes（重大的 Java 变化）

CRUD

*   使 **index**（索引）和 **delete**（删除）操作作为单个的 **bulk** **item**（批量项）来执行（backport of #21964）[#22812](https://github.com/elastic/elasticsearch/pull/22812)（issue: [#21964](https://github.com/elastic/elasticsearch/issues/21964)）

Internal

*   用 **namedObject** 替换 **SearchExtRegistry**[#22492](https://github.com/elastic/elasticsearch/pull/22492)
*   用 **namedObject** 替换 **Suggesters **[#22491](https://github.com/elastic/elasticsearch/pull/22491)

Network

*   为了利于简化 **dispatch** 方法，删除了 **HttpServer** 和 **HttpServerAdapter**  [#22636](https://github.com/elastic/elasticsearch/pull/22636)

Plugins

*   **Guice rest handlers**  [#22575](https://github.com/elastic/elasticsearch/pull/22575)

Search

*   删除了搜索类型 **QUERY_AND_FETCH **[#22996](https://github.com/elastic/elasticsearch/pull/22996)

### Deprecations（弃用项）

core

*   弃用宽松的布尔类型  [#22716](https://github.com/elastic/elasticsearch/pull/22716)

Geo

*   弃用Geo的距离范围  [#22835](https://github.com/elastic/elasticsearch/pull/22835)

Java API

*   采用 XContentType参数添加BulkProcessor方法  [#23078](https://github.com/elastic/elasticsearch/pull/23078)

Mapping

*   弃用include_in_all 映射参数  [#22972](https://github.com/elastic/elasticsearch/pull/22972)

Network

*   弃用Netty 3  [#23459](https://github.com/elastic/elasticsearch/pull/23459)  [#23411](https://github.com/elastic/elasticsearch/pull/23411)

Plugin库 Azure

*   弃用使用Azure库自动创建容器  [#22857](https://github.com/elastic/elasticsearch/pull/22857)

Plugin库 S3

*   S3库：弃用指定区域  [#22848](https://github.com/elastic/elasticsearch/pull/22848)
*   S3库：弃用自动生成S3库的存储段  [#22843](https://github.com/elastic/elasticsearch/pull/22843) 
*   通过环境变量、系统的props属性、移除系统文件来弃用信任凭证  [#22567](https://github.com/elastic/elasticsearch/pull/22567)

REST

*   弃用用于bulk/msearch的ldjson支持和文档ndjson   [#23051](https://github.com/elastic/elasticsearch/pull/23051)
*   对所有的rest请求需要一个任意有效的内容类型  [#22691](https://github.com/elastic/elasticsearch/pull/22691) 

Scripting

*   将存储脚本的命名空间更改为仅使用id  [#22335](https://github.com/elastic/elasticsearch/pull/22335)

### New features（新特性）

 聚合

*   使用过滤聚合的邻接矩阵的初始版本  [#22239](https://github.com/elastic/elasticsearch/pull/22239)

CURD

*   允许使用自定义路由分区索引  [#22274](https://github.com/elastic/elasticsearch/pull/22274)

高亮显示

*   整合未定义的高亮显示项  [#21621](https://github.com/elastic/elasticsearch/pull/21621) 

搜索

*   添加聚合跨集群搜索功能  [#22502](https://github.com/elastic/elasticsearch/pull/22502)
*   为搜索请求添加分组查询  [#22337](https://github.com/elastic/elasticsearch/pull/22337)

设置

*   添加elasticsearch秘钥库的基础结构  [#22335](https://github.com/elastic/elasticsearch/pull/22335)

### Enhancements（改进项）

分配

*   当诠释一个未分配的主分片时，老的副本信息也包含在内  [#22826](https://github.com/elastic/elasticsearch/pull/22826)

分析

*   支持对API位置长度的分析  [#22574](https://github.com/elastic/elasticsearch/pull/22574)

CURD

*   索引和删除操作作为单个主体项执行   [#21964](https://github.com/elastic/elasticsearch/pull/21964)

断路器

*   将已用的内存总量添加到CircuitBreakingException message中  [#22693](https://github.com/elastic/elasticsearch/pull/22693)

集群

*   连接新的并发节点  [#22984](https://github.com/elastic/elasticsearch/pull/22984)

内核

*   简化写入失败的处理流程  [#22778](https://github.com/elastic/elasticsearch/pull/22778)
*   简化ElasticsearchException为XContent  [#22611](https://github.com/elastic/elasticsearch/pull/22611)
*   从ClusterService和TransportService中删除setLocalNode  [#22608](https://github.com/elastic/elasticsearch/pull/22608)

引擎

*   用AlreadyClosedExcpetion替换EngineClosedException  [#22631](https://github.com/elastic/elasticsearch/pull/22631)

索引APIs

*   索引：将分片ID添加到索引操作监听器中  [#22606](https://github.com/elastic/elasticsearch/pull/22606)
*   当不能自动创建索引时给出友好的错误提示  [#22488](https://github.com/elastic/elasticsearch/pull/22488)

Ingest

*   惰性加载geoip数据库  [#23337](https://github.com/elastic/elasticsearch/pull/23337)

Internal

*   提高RemoteClusterConnection中的连接关闭  [#22804](https://github.com/elastic/elasticsearch/pull/22804)
*   移除更多的ParseFieldMatcher的应用  [#22437](https://github.com/elastic/elasticsearch/pull/22437)
*   采用ToXContentObject接口  [#22387](https://github.com/elastic/elasticsearch/pull/22387)

Java API

*   prevent NPE when trying to uncompress a null BytesReference [#22386](https://github.com/elastic/elasticsearch/pull/22386)

Java高级REST客户端

*   将解析从xContent添加到MainResponse   [#22934](https://github.com/elastic/elasticsearch/pull/22934)
*   解析elasticsearch异常的本因  [#22924](https://github.com/elastic/elasticsearch/pull/22924)

*   [在BytesRestResponse的错误上添加解析方法  ](https://github.com/elastic/elasticsearch/pull/22924)[#22873](https://github.com/elastic/elasticsearch/pull/22873)

*   为ElasticsearchException.generateThrowableXContent() 添加解析方法   [#22783](https://github.com/elastic/elasticsearch/pull/22783)

*   为删除回显添加fromxcontent方法  [#22712](https://github.com/elastic/elasticsearch/pull/22712)
*   为UpdateResponse添加解析方法  [#22586](https://github.com/elastic/elasticsearch/pull/22586)
*   从xContent上添加对InternalSearchHit和InternalSearchHits的解析  [#22429](https://github.com/elastic/elasticsearch/pull/22429)
*   在索引响应上添加fromxcontent方法  [#22229](https://github.com/elastic/elasticsearch/pull/22229)

Java REST客户端

*   从yaml测试客户端到低权限rest客户端移除忽略参数  [#22637](https://github.com/elastic/elasticsearch/pull/22637)

*   支持RestClient的抢占认证  [#21336](https://github.com/elastic/elasticsearch/pull/21336)

记录

*   暴露日志绝对路径  [#22625](https://github.com/elastic/elasticsearch/pull/22625)

映射

*   改善ipv6在传统ip字段上的错误消息提示  [#23136](https://github.com/elastic/elasticsearch/pull/23136)

网络

*   维持流水线处理队列最小化  [#23335](https://github.com/elastic/elasticsearch/pull/23335)

打包

*   采用Java版本检测   [#23194](https://github.com/elastic/elasticsearch/pull/23194)

插件发现EC2

*   从aws实例标签中读取ec2发现地址  [#22819](https://github.com/elastic/elasticsearch/pull/22819)

Plugin Lang Painless

*   引用painless API的参考链接  [#22775](https://github.com/elastic/elasticsearch/pull/22775)
*   添加Base64至字符串  [#22665](https://github.com/elastic/elasticsearch/pull/22665)

插件存储库S3

*   S3存储库：增加命名配置  [#22762](https://github.com/elastic/elasticsearch/pull/22762)

插件

*   添加在搜索插件中定义搜索响应侦听器的功能  [#22682](https://github.com/elastic/elasticsearch/pull/22682)

Query DSL

*   QueryString and SimpleQueryString具备图表支持  [#22541](https://github.com/elastic/elasticsearch/pull/22541)
*   在匹配查询中增加图表支持  [#22503](https://github.com/elastic/elasticsearch/pull/22503)
*   RangeQuery WITHIN 如今能进行正常化查询  [#22431](https://github.com/elastic/elasticsearch/pull/22431)

Reindex API

*   提高doExecute的可用性，以便能直接使用  [#22614](https://github.com/elastic/elasticsearch/pull/22614)
*   当reindex从远端获得bad json时，改进错误消息  [#22536](https://github.com/elastic/elasticsearch/pull/22536)

脚本

*   将多值日期显示给脚本并记录painless的日期功能  [#22875](https://github.com/elastic/elasticsearch/pull/22875)

发现

*   添加设置以禁用节点上的远程群集连接  [#23005](https://github.com/elastic/elasticsearch/pull/23005)
*   第一步分离个别搜索阶段  [#22802](https://github.com/elastic/elasticsearch/pull/22802)
*   从xContent添加解析到SearchProfileShardResults和嵌套类中  [#22649](https://github.com/elastic/elasticsearch/pull/22649)
*   ProfileResult和CollectorResult能够打印机器可读时间信息  [#22638](https://github.com/elastic/elasticsearch/pull/22638)

设置

*   改进设置折旧信息  [#23156](https://github.com/elastic/elasticsearch/pull/23156)
*   在启动时添加安全设置验证  [#22894](https://github.com/elastic/elasticsearch/pull/22894)
*   允许逗号分隔的数组设置每个条目之后有一个空格  [#22591](https://github.com/elastic/elasticsearch/pull/22591)
*   允许附加设置为动态/可更新  [#22526](https://github.com/elastic/elasticsearch/pull/22526)
*   允许附加设置表示实际的设置  [#22523](https://github.com/elastic/elasticsearch/pull/22523)
*   s3存储库敏感设置使用安全设置方式  [#22479](https://github.com/elastic/elasticsearch/pull/22479)

快照/还原

*   重复的快照名称抛出InvalidSnapshotNameException异常  [#22921](https://github.com/elastic/elasticsearch/pull/22921)
*   使用通常的集群状态批处理机制进行快照状态更新  [#22528](https://github.com/elastic/elasticsearch/pull/22528)

统计

*   将geo_point添加到FieldStats  [#21947](https://github.com/elastic/elasticsearch/pull/21947)

### Bug fixes（Bug 修复）

CRUD

*   将后端执行操作修正为单项批量执行  [#23083](https://github.com/elastic/elasticsearch/pull/23083)

缓存

*   如果查询超时，则缓存查询结果无效   [#22807](https://github.com/elastic/elasticsearch/pull/22807)

集群

*   不要在群集状态上设置本地节点用于节点连接验证  [#23311](https://github.com/elastic/elasticsearch/pull/23311)
*   允许集群状态应用程序创建监测器并等待更好的状态   [#23132](https://github.com/elastic/elasticsearch/pull/23132)
*   群集分配永远不会返回空的响应体  [#23054](https://github.com/elastic/elasticsearch/pull/23054)

特例

*   停止返回“es”。 内部异常标头作为HTTP响应头  [#22703](https://github.com/elastic/elasticsearch/pull/22703)

Ingest

*   改善丢失的Ingest处理器错误  [#23379](https://github.com/elastic/elasticsearch/pull/23379)
*   将数据处理器固定到每个新管道执行的新的默认年份  [#22601](https://github.com/elastic/elasticsearch/pull/22601)

Internal

*   恢复ThreadContext以使由于块阻塞而延迟的操作  [#23349](https://github.com/elastic/elasticsearch/pull/23349)
*   修复InternalEngine中的文档失败异常的处理  [#22910](https://github.com/elastic/elasticsearch/pull/22910)

Java REST客户端

*   RestClient异步执行不应该抛出异常  [#23307](https://github.com/elastic/elasticsearch/pull/23307)

映射

*   将多个磁盘中的include_in_all切换到警告  [#23656](https://github.com/elastic/elasticsearch/pull/23656)
*   修复MapperService StackOverflowError  [#23605](https://github.com/elastic/elasticsearch/pull/23605)
*   当查询字符串中为include_defaults = true时，范围类型导致GetFieldMappingsIndexRequest由于NullPointerException inRangeFieldMapper.doXContentBody而失败   [#22925](https://github.com/elastic/elasticsearch/pull/22925)
*   禁止引入非法对象映射（double ..)  [#22891](https://github.com/elastic/elasticsearch/pull/22891)

网络

*   遵守流式响应的承诺  [#23317](https://github.com/elastic/elasticsearch/pull/23317)
*   确保调用释放监听器  [#23310](https://github.com/elastic/elasticsearch/pull/23310)

Packaging

*   删除插件时，回到非原子运动  [#23548](https://github.com/elastic/elasticsearch/pull/23548) 

Parent/Child

*   在孤立的子文件的情况下添加空检查  [#22772](https://github.com/elastic/elasticsearch/pull/22772)

Plugin Ingest Attachment

*   删除对Visio和potm文件的支持  [#23214](https://github.com/elastic/elasticsearch/pull/23214)
*   添加缺少的mime4j库  [#22799](https://github.com/elastic/elasticsearch/pull/22799)

Plugin Lang Painless

*   修复Bad Casts异常  [#23282](https://github.com/elastic/elasticsearch/pull/23282)
*   不允许在无关紧要处定义无效内容  [#22969](https://github.com/elastic/elasticsearch/pull/22969)
*   修复def调用的合法方法参考  [#22918](https://github.com/elastic/elasticsearch/pull/22918)

插件

*   在remove命令中添加检查null pluginName  [#22930](https://github.com/elastic/elasticsearch/pull/22930)

Query DSL

*   修复max_determinized_states的解析  [#22749](https://github.com/elastic/elasticsearch/pull/22749)

REST

*   [API]根据文档更改wait_for_completion默认值  [#23672](https://github.com/elastic/elasticsearch/pull/23672)
*   HTTP传输会隐藏ThreadContext而不是RestController  [#23456](https://github.com/elastic/elasticsearch/pull/23456)
*   确保我们尝试自动检测支持纯文本的处理程序的内容类型  [#23452](https://github.com/elastic/elasticsearch/pull/23452)
*   在警告标题中修正日期格式  [#23418](https://github.com/elastic/elasticsearch/pull/23418)
*   正确警告标题符合要求   [#23275](https://github.com/elastic/elasticsearch/pull/23275)
*   使用纯文本正文修复搜索滚动请求  [#23183](https://github.com/elastic/elasticsearch/pull/23183)
*   处理不良的HTTP请求  [#23153](https://github.com/elastic/elasticsearch/pull/23153)
*   正确编码位置标题  [#23133](https://github.com/elastic/elasticsearch/pull/23133)

Reindex API

*   Reindex：当不能清除旧滚动条时不要登录  [#22942](https://github.com/elastic/elasticsearch/pull/22942)
*   修复&lt;2.0版本的远程索引  [#22931](https://github.com/elastic/elasticsearch/pull/22931)

Scripting

*   删除不必要的Groovy弃用日志记录  [#23410](https://github.com/elastic/elasticsearch/pull/23410)
*   脚本：将ctx._now的值修改为当前时间（以毫秒为单位）[#23175](https://github.com/elastic/elasticsearch/pull/23175)

Search

*   在多搜索中honor最大并发搜索  [#23538](https://github.com/elastic/elasticsearch/pull/23538)
*   避免多重搜索中的堆栈溢出  [#23527](https://github.com/elastic/elasticsearch/pull/23527)
*   通过异步请求替换ExpandCollapseSearchResponseListener中的阻塞调用  [#23053](https://github.com/elastic/elasticsearch/pull/23053)
*   确保InnerHitBuilder的固定序列化顺序   [#22820](https://github.com/elastic/elasticsearch/pull/22820)

Settings

*   修复合并调度程序配置设置  [#23391](https://github.com/elastic/elasticsearch/pull/23391)
*   设置：修复keystore cli提示为yes / no来处理控制台返回null   [#23320](https://github.com/elastic/elasticsearch/pull/23320)
*   将search.highlight.term_vector_multi_value作为节点级别设置  [#22999](https://github.com/elastic/elasticsearch/pull/22999)
*   没有设置名称传递到elasticsearch-keystore的NPE  [#22609](https://github.com/elastic/elasticsearch/pull/22609)

Similarities

*   修复“默认”相似度时的相似度升级  [#23163](https://github.com/elastic/elasticsearch/pull/23163)

统计

*   计算总体FS统计数据时避免溢出  [#23641](https://github.com/elastic/elasticsearch/pull/23641)
*   添加路径总数时处理长时间溢出  [#23293](https://github.com/elastic/elasticsearch/pull/23293) 
*   修复对照组模式  [#23219](https://github.com/elastic/elasticsearch/pull/23219)
*   修复总磁盘字节返回负值   [#23093](https://github.com/elastic/elasticsearch/pull/23093)

任务管理器

*   修复没有子进程的悬挂取消任务  [#22796](https://github.com/elastic/elasticsearch/pull/22796)
*   修复破坏TaskInfo.toString（）  [#22698](https://github.com/elastic/elasticsearch/pull/22698)

### Regressions（回退）

Core

*   源过滤：如果之前的版本包含模式匹配，则仅接受数组项  [#22593](https://github.com/elastic/elasticsearch/pull/22593)

### Upgrades（升级）

Internal

*   升级到Lucene 6.4.1  [#22978](https://github.com/elastic/elasticsearch/pull/22978)