search_type = count removed 计数搜索类型自2.0.0版起已被弃用,现在已被删除。 为了获得相同的好处,您只需要将size参数的值设置为0。
例如,以下请求:
GET /my_index/_search?search_type=count
{
"aggs": {
"my_terms": {
"terms": {
"field": "foo"
}
}
}
}
可替换为:
GET /my_index/_search
{
"size": 0,
"aggs": {
"my_terms": {
"terms": {
"field": "foo"
}
}
}
}
search_type = scan removed 扫描搜索类型自2.1.0版以来已弃用,现在已删除。 现在可以通过执行以_doc顺序排列文档的滚动请求来实现此搜索类型的所有好处,例如:
GET /my_index/_search?scroll=2m
{
"sort": [
"_doc"
]
}
按 _doc 排序的滚动请求已优化,以便从上一个请求停止的位置更有效地恢复,因此这将具有与前一个扫描搜索类型相同的性能特性。
在5.0中,Elasticsearch拒绝将查询超过1000个分片副本(初级或副本)的请求。 原因是这样大量的分片使协调节点的工作非常耗费CPU和内存。 组织数据通常是一个更好的主意,因为有较少的较大的分片。 如果您想绕过此限制(不鼓励),可以将 action.search.shard_count.limit 集群设置更新为更大的值。
fields参数已替换为stored_fields。 stored_fields参数将只返回存储的字段 - 它将不再从_source中提取值。
fielddata_fields已弃用,请改用参数docvalue_fields。
搜索存在api已被删除,有利于使用大小设置为0和terminate_after设置为1的搜索API。
以下已弃用的查询已删除:
filtered 使用bool查询,它支持过滤器子句。 and 请在bool查询中使用must子句。 or 请在bool查询中使用should子句。 missing 使用否定的exists查询。 (也从query_string查询中删除_missing_) limit 请改用terminate_after参数。 fquery 在过滤器和查询合并后过时。 query 在过滤器和查询合并后过时。 query_binary 未归档,已删除。 filter_binary 未归档,已删除。
删除了对搜索api中已弃用的顶级过滤器的支持,由post_filter替换。
删除了对多个高亮名称的支持,唯一支持的是:plain,fvh和postings。
术语向量API不再保持映射中的未映射字段。
术语向量API的dfs参数已完全删除。词向量不再支持分布式文档频率。
reverse参数已被删除,有利于使用order选项明确指定排序顺序。
为了支持validation_method;coerce和ignore_malformed参数已被弃用。
在对查询查询的响应中,query_type已重命名为type,lucene已重命名为description。这些更改已经完成,所以响应格式更加友好,以支持其他类型的分析在未来。
搜索首选项 _only_node已删除。 使用_only_nodes并指定单个节点ID可以实现相同的行为。
搜索首选项 _prefer_node已被_prefer_nodes替代。 通过指定单个节点,_prefer_nodes提供与_prefer_node相同的功能,但也支持指定多个节点。
搜索首选项 _shards接受辅助首选项,例如_primary用于指定指定分片的主副本。 之前用于将参数的_shards部分与辅助首选项分隔开的分隔符为。 但是,这也是查询字符串参数之间可接受的分隔符,这意味着除非; 逃避,从未观察到次要偏好。 该分隔符已更改为| 并且不需要转义。
默认相似性已更改为BM25。
fields字段已重命名为stored_fields