ElasticSearch5.0之后的改变

时间:2022-11-27 16:59:38

ES5的变化

  1. search_type=count和scan都移除了
  2. count可以用size=0代替
GET /my_index/_search
{
"size": 0,
"aggs": {
"my_terms": {
"terms": {
"field": "foo"
}
}
}
}
  1. scan用下面的_doc代替,按_doc 排序是经过优化的,他和scanAPI有一样的效果
GET /my_index/_search?scroll=2m
{
"sort": [
"_doc"
]
}
  1. fields参数被stroed_fields取代了,stroed_fields只返回存储的数值,而不是从_source中获取数据

  2. fielddata_fields已被弃用,使用参docvalue_fields来代替。

  3. 已弃用的查询:

    • filtered 使用bool查询,也支持filter子句。
    • and must在bool查询中 使用子句。
    • or should在bool查询中 使用子句。
    • missing 使用否定的exists查询。(也missing从query_string查询中删除)
    • limit 改用terminate_after参数。
    • fquery 过滤器和查询合并后过时。
    • query 过滤器和查询合并后过时。
    • query_binary 没有文件,已被删除。
    • filter_binary 没有文件,已被删除
  4. 更改的查询

    • 不支持的查询(例如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参数已被弃用
  5. *filter参数删除

    • 删除filter了对搜索api中弃用的*别的支持,替换为post_filter