1. ES 数据库的存储结构变化:去除了Type
  • es6时,官方就提到了es7会删除type,并且es6时已经规定每一个index只能有一个type。在es7中使用默认的_doc作为type,官方说在8.x版本会彻底移除type。

  • api请求方式也发送变化,对索引的文档进行操作的时候,默认使用的Type是 _doc 如获得某索引的某ID的文档:GET index/_doc/id其中index和id为具体的值

  1. 创建索引mapping关系的时候,容易出的错:Root mapping definition has unsupported parameters

ElasticSearch6 中创建索引映射关系的语法

put es_test_index
{"settings": {"index": {"analysis.analyzer.default.type": "ik_max_word"}},"mappings": {"item": {  # type的名字 item【7.X没用了】"properties": {"site_id": {"type": "long","index": True},"content": {"type": "text"}}}}
}

ElasticSearch7 中执行需要去掉 Type类型,修改为

put es_test_index
{"settings": {"index": {"analysis.analyzer.default.type": "ik_max_word","number_of_shards":3,"number_of_replicas":2}},"mappings": {"properties": {"site_id": {"type": "long","index": True},"content": {"type": "text"}}}
}

_type(隐性)替代方案在 document中新增 type字段或者其他字段进行区分

PUT twitter
{"mappings": {"_doc": {"properties": {"type": { "type": "keyword" }, # 1"name": { "type": "text" },"user_name": { "type": "keyword" },"email": { "type": "keyword" },"content": { "type": "text" },"tweeted_at": { "type": "date" }}}}
}
PUT twitter/_doc/user-kimchy
{"type": "user", # 2"name": "Shay Banon","user_name": "kimchy","email": "shay@kimchy.com"
}
PUT twitter/_doc/tweet-1
{"type": "tweet", # 3"user_name": "kimchy","tweeted_at": "2017-10-24T09:00:00Z","content": "Types are going away"
}

GET twitter/_search
{"query": {"bool": {"must": {"match": {"user_name": "kimchy"}},"filter": {"match": {"type": "tweet" # 4}}}}
}
  1. 默认配置变化:默认节点名称为主机名,默认分片数为1,不再是5

  2. 查询相关速度优化:Weak-AND算法

weak-and算法,又称为Wand算法, 输入是n个倒排队列,输出top K个得分最高的文档doc

  • 核心原理:取TOP N结果集,估算命中记录数。
  • 简单来说,一般我们在计算文本相关性的时候,会通过倒排索引的方式进行 查询,通过倒排索引已经要比全量遍历节约大量时间,但是有时候仍然很慢。 原因是很多时候我们其实只是想要top n个结果,一些结果明显较差的也进行了复杂的相关性计算,而weak-and算法通过计算每个词的贡献上限来估计文档的相关性上限,从而建立一个阈值对倒排中的结果进行减枝,从而得到提速的效果
  1. 间隔查询(Intervals queries):

某些搜索用例(例如,法律和专利搜索)引入了查找单词或短语彼此相距一定距离的记录的需要。

Elasticsearch 7.0中的间隔查询引入了一种构建此类查询的全新方式,与之前的方法(跨度查询span
queries)相比,使用和定义更加简单。

与跨度查询相比,间隔查询对边缘情况的适应性更强。

  1. 引入新的集群协调子系统

移除 minimum_master_nodes 参数,让 Elasticsearch 自己选择可以形成仲裁的节点。

  1. 彻底废除 _all 字段的支持,为提升性能默认不在支持全文检索

  2. 新增的功能

  • 8.1 新增应用程序主动检测功能,搭配对应版本的kibana,用户可监测应用服务的健康状态,并在出现问题后及时发出通知

  • 8.2 新增间隔查询(Intervals Queries),用户可设置多字符串在文档中出现的先后顺序进行检索

  • 8.3 自带jdk,所以在安装ES时不再需要单独下载和配置JAVA_HOME。

取消Query结果中的Hits Count的支持(聚合查询除外),使得查询性能大幅提升。这就意味着,每次查询后将不能得到精确的结果集数量

  • 8.4 的集群协调子系统,缩减配置项提升稳定性。时间戳纳秒级支持,提升数据精度

移除 minimum_master_nodes 参数,让 Elasticsearch 自己选择可以形成仲裁的节点。

典型的主节点选举现在只需要很短的时间就可以完成。

集群的伸缩变得更安全、更容易,并且可能造成丢失数据的系统配置选项更少了。

节点更清楚地记录它们的状态,有助于诊断为什么它们不能加入集群或为什么无法选举出主节点。

  1. 不会再有OOM(内存溢出)的情况,JVM引入了新的circuit breaker(熔断)机制,当查询或聚合的数据量超过单机处理的最大内存限制时会被截断,并抛出异常
  2. 集群连接变化:6版本之后TransportClient被废弃

以至于,es7的java代码,只能使用restclient。然后,个人综合了一下,对于java编程,建议采用 High-level-rest-client 的方式操作ES集群

  1. High-level REST client 改变
    已删除接受Header参数的API方法;Cluster Health API默认为集群级别

参考文章
参考文章

ElasticSearch7.x「新特性」相关推荐

  1. IEEE Fellow杨铮:打破「视觉」垄断,无线信号为 AI 开启「新感官」

    来源:AI科技评论 作者:陈彩娴 编辑:岑峰 2020年年初疫情刚开始时,清华大学的官方号曾祭出一篇题为<清华教师升级「十大神器」,上课力满格>的推文,讲述了软件学院某老师如何居家办公.探 ...

  2. 「新数据」太棘手,向量数据库来帮忙!《新程序员》刊登 Zilliz 长文解读

    新数据库时代,数据库领域有哪些新技术.新应用?谁将改变数据库的游戏规则? 酷爱阅读科技杂志的 Z 宝,刚刚收到了刊登了 Zilliz 长篇署名文章的<新程序员>! 顺手一翻,Z 宝不禁感叹 ...

  3. 「新职业」背后赚钱的需求在哪里?

    loonggg 读完需要 6 分钟 速读仅需 2 分钟 大家好,我是校长. 前几天我们不是在公众号聊了聊 B 站和 DT 财经联合发布的<2021 年青年新职业指南>吗?里面列举了上百个有 ...

  4. 职业高中学计算机高考后能报什么,「新高考」新高考选哪些科目可以报计算机专业?高中生如何提分?...

    摘要: 「新高考」新高考选哪些科目可以报计算机专业?高中生如何提分?为你介绍为了让大家详细的了解关于新高考,计算机专业,高中生的一些信息内容,招生网为大家整理了<「新高考」新高考选哪些科目可以报 ...

  5. 18 亿美元言和高通,华为适应「新秩序」

    政治的「硬脱钩」阴影下,中美企业正在积极寻找「新秩序」下的合作可能. 就在 TikTok 寻求海外市场「突破口」之际,另一家深受「全球化割裂」之害的厂商华为,也在悄悄地另觅他径. 近期,高通 2020 ...

  6. 关于 Python3.9,看这张 16 岁高中生做的「新特性必知图」就够了

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI Python3.9,「千呼万唤始出来」. 先来速看下此次发布版本的重点. 新语法特性: PEP 584,为 dict 增加合并运算符. PE ...

  7. 关于Python3.9,看这张16岁高中生做的「新特性必知图」就够了

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI Python3.9,「千呼万唤始出来」. 先来速看下此次发布版本的重点. 新语法特性: PEP 584,为 dict 增加合并运算符. PE ...

  8. 特斯拉公布的「新电池」,究竟要用在哪里?

    来源丨ArsTechnica 作者丨SCOTT K. JOHNSON 编译丨科技行者 在近期的"电池日(battery day)"活动上,特斯拉公司终于透露了其长期保密项目的一系列 ...

  9. GPU 「抗压」不行还费电,FPGA将成深度学习「新基建」

    深度学习的突飞猛进,给GPU插上了腾飞的翅膀,英伟达和AMD的显卡成为人工智能的「硬通货」.但是GPU固有的一些缺陷,让它的大规模应用受到约束,更加抗造的FPGA有望成为AI新的「底层建筑」. 过去十 ...

最新文章

  1. Eclipse上GIT插件EGIT使用手册之八_解决推送冲突
  2. python 办公自动化-用python进行办公自动化都需要学习什么知识呢?
  3. maven 构建web程序出现问题
  4. LeetCode 第 199 场周赛(757/5231,前14.5%)
  5. 项上的温柔,冬季围巾8大打法图解(组图)
  6. python自动化测试工具开发_Python+Selenium自动化测试教程连载(2)
  7. BC 2015在百度之星程序设计大赛 - 预赛(1)(KPI-树董事长)
  8. springboot处理静态资源
  9. linux中如何实时同步时间,linux实现时间同步有哪几种方法
  10. 用C实现五子棋对战——超详细教程
  11. iOS 10.1发现新漏洞:可绕过“激活锁”强行进入主屏
  12. OpenContrail 体系架构文档
  13. lisp天正图元位置修改_关于图元改层的,请求大佬帮助 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
  14. 一寸照片快照多少钱_去照相馆拍照一般多少钱
  15. 剑指XX游戏(七) - 不拼搏,枉少年
  16. python 推箱子实验开发报告,python实现推箱子游戏
  17. Python水滴筹模拟筹款工具
  18. 流媒体加速服务的详细讲解
  19. Google天气接口
  20. flash常见问题集锦,很适合新手哦[二]

热门文章

  1. 编程十年 (4):步入编程殿堂
  2. 洛谷 - P1111 - 修复公路 - 并查集
  3. ubuntu16.04 nginx安装
  4. SQL Server 2008 允许远程链接 解决方法
  5. MySQL基础 (DML)
  6. JSPatch – 动态更新iOS APP
  7. 《微信企业号开发日志》之企业号接入
  8. 加载NMGameX.dll时出错?
  9. 基于节拍谱的语音音乐分类模型
  10. DCT C语言 修改了c程序以及matlab的程序