REST API改变

严格的REST查询字符串参数解析

先前版本的Elasticsearch忽略无法识别的URL查询字符串参数。这意味着Elasticsearch将默认接受包含打印错误的无关参数或参数。这从最终用户的角度是危险的,因为这意味着所提交的请求将以不预期的方式执行。此宽容已删除,Elasticsearch现在将失败包含无法识别的查询字符串参数的任何请求。

超过512字节的ID值被拒绝

当指定大于512字节的_id值时,请求将被拒绝。

/_optimize终结点删除

已弃用 /_optimize 端点已删除。应使用 /_forcemerge 端点来代替optimize。

/_forcemerge的GET HTTP动词不再受支持,请使用POST HTTP动词。

索引创建端点仅接受PUT

以前可以通过调用PUT index_name或POST index_name来创建索引。只有前者现在支持。

HEAD {index} / {type}替换为HEAD {index} / _ mapping / {type}

用于检查类型是否存在的端点已经从{index}/{type}改为{index} /_ mapping/{type},以便在使用HEAD {index}/{id}时准备删除类型以检查文档是否存在于索引中。旧的端点将继续工作,直到6.0。

从 /_cluster/stats响应中删除了mem部分

mem部分只包含总值,实际上是集群中所有节点可用的内存。该部分现在包含total,free,used,used_percent和free_percent。

/_cluster/stats返回的修订的节点角色聚合

客户机master_only,data_only和master_data字段已被删除,有利于master,data,ingest和coordinating_only。节点可以贡献多个计数,因为它可以有多个角色。每个节点都隐式地是协调节点,因此每当节点没有显式角色时,它将被计为仅协调。

从 /_cluster/state 路由表中删除碎片版本信息

我们现在在集群状态中存储分片的分配ID,并使用它来选择主分片,而不是版本信息。

节点角色不再是节点属性的一部分

节点角色现在在特定部分返回,称为角色,作为节点stats和节点信息响应的一部分。新部分是一个数组,包含每个节点实现的所有不同的角色。在数组返回为空的情况下,这意味着该节点是仅协调节点。

禁止未引用的JSON

以前,允许JSON文档带有未引用的字段名称,这不是严格的JSON和打破一些Elasticsearch客户端。如果文档已在以前的Elasticsearch版本中用非引用字段编入索引,某些操作可能会抛出错误。为了伴随此,已注释掉的JVM选项已添加到jvm.options文件中:-Delasticsearch.json.allow_unquoted_field_names。

请注意,此选项仅用于迁移目的,将在Elasticsearch 6.0.0中删除。

分析API改变

过滤器和char_filters参数已重命名为filter和char_filter。已删除token_filters参数。请改用滤镜。

DELETE  /_query端点已删除

删除按查询插件提供的DELETE / _query端点已删除,并被按查询删除API替换。

创建存储脚本端点已删除

之前允许创建索引脚本的PUT / _scripts / {lang} / {id} / _ create端点已删除。索引脚本已替换为存储的脚本。

创建存储的模板端点已删除

以前允许创建索引模板的PUT / _search / template / {id} / _ create端点已删除。索引模板已被预注册的模板替换。

删除属性支持

一些REST端点(例如,集群更新索引设置)支持以Java属性格式(行分隔键=值对)检测内容。此支持已删除。

wait_for_relocating_shards现在是 /_cluster/health 中的wait_for_no_relocating_shards

用于获取数字的wait_for_relocating_shards参数现在只是一个布尔标记wait_for_no_relocating_shards,如果设置为true,则意味着请求将等待(直到配置的超时)集群在返回之前没有分片重定位。默认为false,这意味着操作不会等待。