ElasticSearch5.0之后的改变

Stella981
• 阅读 630

ES5的变化

  1. search_type=count和scan都移除了

  2. count可以用size=0代替

    GET /my_index/_search { "size": 0, "aggs": { "my_terms": { "terms": { "field": "foo" } } } }

  3. scan用下面的_doc代替,按_doc 排序是经过优化的,他和scanAPI有一样的效果

    GET /my_index/_search?scroll=2m { "sort": [ "_doc" ] }

  4. fields参数被stroed_fields取代了,stroed_fields只返回存储的数值,而不是从_source中获取数据

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

  6. 已弃用的查询:

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

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

    • 删除filter了对搜索api中弃用的最高级别的支持,替换为post_filter
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Java修道之路,问鼎巅峰,我辈代码修仙法力齐天
<center<fontcolor00FF7Fsize5face"黑体"代码尽头谁为峰,一见秃头道成空。</font<center<fontcolor00FF00size5face"黑体"编程修真路破折,一步一劫渡飞升。</font众所周知,编程修真有八大境界:1.Javase练气筑基2.数据库结丹3.web前端元婴4.Jav
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
35. Search Insert Position
Category:BinarySearch&ArrayGivenasortedarrayandatargetvalue,returntheindexifthetargetisfound.Ifnot,returntheindexwhereit
Stella981 Stella981
3年前
Es学习第七课, term、terms、match等基本查询语法
term、terms查询termquery会去倒排索引中寻找确切的term,它并不知道分词器的存在,这种查询适合keyword、numeric、date等明确值的term:查询某个字段里含有某个关键词的文档GET/customer/doc/_search/{"query":{
Wesley13 Wesley13
3年前
35岁是技术人的天花板吗?
35岁是技术人的天花板吗?我非常不认同“35岁现象”,人类没有那么脆弱,人类的智力不会说是35岁之后就停止发展,更不是说35岁之后就没有机会了。马云35岁还在教书,任正非35岁还在工厂上班。为什么技术人员到35岁就应该退役了呢?所以35岁根本就不是一个问题,我今年已经37岁了,我发现我才刚刚找到自己的节奏,刚刚上路。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_