Elasticsearch系列-基础篇(一):基本介绍

1、ES基本介绍:

ES是一个开源实时的分布式搜索分析引擎,内部基于Apache Lucene做的索引与搜索。

  • 实时表现在:新增到ES的数据1s后可以被检索到(准实时搜索)(详见索引原理)
  • 分布式意味着:可以动态的调整集群的规模,进行弹性扩容
  • 搜索:内部使用Lucene库提供索引和搜索的功能
  • 分析:ES提供大量的聚合功能,可以进行基于搜索和大数据量下数据分析、统计等

2、ES基础概念:

  • 集群:一个或多个节点(服务器)的集合,节点通过集群名称加入集群
  • 节点:一个Elasticsearch实例
  • 索引:具有相似结构的文档的集合
  • 分片:ES会将数据分成若干份分配到各个节点上来提高水平扩展能力
  • 副本:分片的副本用来提高可用性,同时副本可以使读操作并发执行,分担主分片压力
  • 类型:Type是索引的逻辑分类,用于存放不同类型的数据,逻辑上可以理解为index是库,type是表
  • 文档:ES是面向文档(Document)的,数据以文档的形式被存储,并且以JSON作为文档的序列化格式
  • 映射:用于指定文档中字段的字段属性,比如:字段类型、索引分词器、搜索分词器、权重..等等,类似于关系型数据库的表结构定义

3、ES版本变迁:

  • 0.x --> 1.x --> 2.x --> 5.x --> 6.x --> 7.x
    当前最新的release版为7.3
    并且2.x 版本直接跳到5.x 版本是为了ELK栈(Elasticsearch、Logstash、Kibana)的版本统一,避免因版本选择不对造成的冲突,同时Kibana的版本已经是4.x,所以ELK统一升级为5.0

4、ES版本变迁之新特性:

ES5.0部分新特性如下:
新特性 影响
支持Lucene6.x 磁盘空间少一半;索引时间少一半;查询性能提升25%,支持IpV6
Internal engine级别移除文档并发更新的竞争锁 性能提升15%-20%
新增Sliced Scroll类型 支持并发的滚动遍历
新增Profile Api 查询时指定profile:true,将会统计此查询底层的查询情况及耗时,用于优化查询
新增Search after机制 实时滚动查询,可用于有实时需求的深度分页查询
新增Shrink Api 可将主分片数量收缩为它的因数个数,比如有15个主分片,可以将其收缩为5/3/1个,适用于日志写入压力特别大的收集阶段,可将主分片个数调大来充分利用它的并行写能力,索引完后收缩成更小的分片数来提高查询性能
新增Rollover Api 可以自定义某种规则来轮转索引,类似于每天日志每天一个索引
新增Reindex 支持从一个索引重建到另一个索引,重建过程中可对数据进行修改,使用时指定来源source及目的索引dest,也支持跨集群间的数据迁移
新增预处理节点(Ingest node) 预处理节点集成了logstash的部分能力,可以对数据进行一些转换、过滤等操作,默认情况下所有的节点启用ingest,禁用的话需指定node.ingest:false
新增Text/keyword类型 用于替换string类型,string类型被标记为已过时,并将在6.0删除,其中keyword类型的数据只能做完全匹配查询,适合不需要分词的数据
ES5.6开始新增Java High level client 可以通过调用api的方式执行search, index, delete, update和bulk等操作
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。