在6.4中的重要更改
本节讨论在将应用程序迁移到Elasticsearch 6.4时需要注意的更改。
bin/plugin
不能再删除x-pack了bin/plugin remove x-pack
不再有效,在升级到6.4或以后的版本之前,你应该删除X-Pack插件,更多介绍在滚动升级和完整集群重启升级。
也请参阅发行亮点和发行说明。
API更改
字段功能请求格式
在过去,fields
可以作为参数提供,也可以作为请求体的一部分提供,现在不提倡在请求体中指定fields
,而是应该始终通过请求参数提供字段,在7.0.0中,字段功能API将不接受请求主体中提供的fields
。
在收缩/分割操作期间复制源设置
在以前的Elasticsearch版本中,调整大小操作(收缩/分割)只会从源索引中复制index.analysis
、index.similarity
和index.sort
设置。Elasticsearch 6.4.0引入了一个请求参数copy_settings
,除了不可复制的索引设置外,它将从源中复制所有索引设置。这个参数在6.x中默认为false
,在6.4.0中立即被弃用,将只能在8.x中被设置为true
,并将在9.0.0中删除。注意,当使用此参数时,意味着将复制所有可复制的设置,这包括为调整大小操作必须放置的索引块,以及为执行调整大小操作而设置的任何分配设置。如果使用此参数,你将不得不在操作之后发出请求,以调整目标索引上所需的设置,或者通过调整大小操作发送这些设置的所需值。
搜索和查询DSL更改
限制Regexp查询请求中可以使用的regex的长度
由许多操作符组成的长字符串的Regexp查询可能会遇到堆栈溢出,为了防止出现这种情况,Regexp查询请求中可以使用的regex的最大长度限制为1000
,对于特定索引,这个默认最大值可以通过设置index.max_regex_length
来更改。
脚本
遗留存储的脚本格式已被废弃
不使用顶级script
对象的存储脚本格式已被弃用,这些格式的支持将在下一个主要版本中删除。
这包括template
存储的脚本格式和不将脚本封装在script
json对象中的格式。
REST客户端
旧的低级别performRequest
已被弃用
performRequest
和performRequestAsync
在6.3版本的低级别客户端中已经被弃用,支持performRequest(Request)
和performRequestAsync(Request, ActionListener)
,这些将允许我们向客户端添加更多的特性,而不需要添加更多的performRequest变体。
旧的高级别request
方法已被弃用
高级别客户端上的所有request
方法都已被弃用,以支持采用RequestOptions
的新变体,这允许高级别客户端的用户对单个请求定制许多其他方法无法使用的选项。
HostSniffer重命名为NodeSniffer和signature更改
为了允许Sniffer
获取更多的元数据,我们将它从嗅探HttpHost
更改为嗅探Node
,引入了一个新类来包含连接信息和元数据,比如节点的角色或在elasticsearch.yml
中定义的任何属性,这些可以被新的RequestOptions#setNodeSelector
使用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。