ES5的变化
search_type=count和scan都移除了
count可以用size=0代替
GET /my_index/_search { "size": 0, "aggs": { "my_terms": { "terms": { "field": "foo" } } } }
scan用下面的_doc代替,按_doc 排序是经过优化的,他和scanAPI有一样的效果
GET /my_index/_search?scroll=2m { "sort": [ "_doc" ] }
fields参数被stroed_fields取代了,stroed_fields只返回存储的数值,而不是从_source中获取数据
fielddata_fields已被弃用,使用参docvalue_fields来代替。
已弃用的查询:
- filtered 使用bool查询,也支持filter子句。
- and must在bool查询中 使用子句。
- or should在bool查询中 使用子句。
- missing 使用否定的exists查询。(也missing从query_string查询中删除)
- limit 改用terminate_after参数。
- fquery 过滤器和查询合并后过时。
- query 过滤器和查询合并后过时。
- query_binary 没有文件,已被删除。
- filter_binary 没有文件,已被删除
更改的查询
- 不支持的查询(例如geo_point字段中的术语查询)现在将失败,而不返回任何命中。 删除了对数字,日期和ip字段的模糊查询的支持,改为使用范围查询。
- 删除了对范围和前缀查询的支持_uid和_id字段。查询无索引字段现在将失败,而不返回任何命中。
- 删除对已弃用min_similarity参数的支持fuzzy query,有利于fuzziness。 已过时的支持删除fuzzy_min_sim在参数 query_string查询,赞成的fuzziness。
- 删除了对完成edit_distance建议的弃用参数的支持,赞成fuzziness。
- 删除对已弃用filter和查询中的no_match_filter字段的支持indices,有利于query和no_match_query。
- 删除对查询中不推荐使用的filter字段的支持nested,有利于query。
- 删除对已弃用minimum_should_match和 disable_coord在terms查询中的支持,bool而不是使用查询。还删除了对已弃用execution参数的支持。
- 删除对查询中顶级filter元素的支持function_score,替换为query。 在collect_payloads该参数span_near查询已被弃用。有效负载将在需要时加载。 在score_type对参数nested和has_child查询,取而代之的被删除score_mode。在score_mode对参数has_parent 已经被弃用,取而代之的的score布尔参数。此外, total分数模式已被移除,有利于该sum模式。
- 当max_children参数设置为0上has_child查询,则有许多子文档是如何允许匹配没有上限。现在,0真的意味着允许零子文档。如果不需要上限,那么max_children根本不应该指定参数。
- exists如果该_field_names字段被禁用 ,查询将失败。
- multi_match查询将失败,如果fuzziness是用于cross_fields,phrase或phrase_prefix键入。对于这些类型,此参数未经过文档化和默认忽略multi_match。
- 对GeoPolygonQuery中的强制,归一化,ignore_malformed参数的弃用支持。改用参数validation_method。
- 对GeoDistanceQuery中的强制,归一化,ignore_malformed参数的弃用支持。改用参数validation_method。
- 对GeoBoundingBoxQuery中的强制,归一化,ignore_malformed参数的弃用支持。改用参数validation_method。
- geo_distance_range查询已被弃用,应由geo_distance桶聚合或geo_distance排序替换。
- 对于geo_distance查询,聚集和排序sloppy_arc的选项distance_type参数已被弃用
顶级filter参数删除
- 删除filter了对搜索api中弃用的最高级别的支持,替换为post_filter