- REST API改变
- 严格的REST查询字符串参数解析
- 超过512字节的ID值被拒绝
- /_optimize终结点删除
- 索引创建端点仅接受PUT
- HEAD {index} / {type}替换为HEAD {index} / _ mapping / {type}
- 从 /_cluster/stats响应中删除了mem部分
- /_cluster/stats返回的修订的节点角色聚合
- 从 /_cluster/state 路由表中删除碎片版本信息
- 节点角色不再是节点属性的一部分
- 禁止未引用的JSON
- 分析API改变
- DELETE /_query端点已删除
- 创建存储脚本端点已删除
- 创建存储的模板端点已删除
- 删除属性支持
- wait_for_relocating_shards现在是 /_cluster/health 中的wait_for_no_relocating_shards
REST API改变
原文链接 : https://www.elastic.co/guide/en/elasticsearch/reference/5.0/breaking_50_rest_api_changes.html
译文链接 : http://www.apache.wiki/pages/viewpage.action?pageId=4260795
贡献者 : 片刻
严格的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,这意味着操作不会等待。