1、ES概念


            ElasticSearch是一个分布式,高性能、高可用、可伸缩的搜索和分析系统,支持海量数据搜索与分析,可以用于电商网站、门户网站、企业IT系统等各种场景下的搜索引擎,也可以用于对海量的数据进行近实时(秒级)的数据分析。

1.1集群:
多台Es服务器的结合的统称叫ES集群,一个集群包含多台服务器,多个节点。集群中有很多结点,结点与结点之间可以进行配置。比如:Node1主结点,非数据结点。(协调创建索引、查询请求)Node2非主结点,数据结点。Node3非主结点,非数据(负载 均衡,组装返回的数据给客户端。)
Elasticsearch核心技术与实战
1.2节点
一个节点是集群中的一个服务器,作为集群的一部分,它存储你的数据,参与集群的索引和搜索功能。
节点分类:主节点、数据节点、路由节点、预处理节点。

  • 主节点,主节点的主要职责是和集群操作相关的内容,如创建或删除索引,跟踪哪些节点是集群的一部分,并决定哪些分片分配给相关的节点。稳定的主节点对集群的健康是非常重要的。
  • 数据节点,数据节点主要是存储索引数据的节点,主要对文档进行增删改查操作,聚合操作等。数据节点对CPU、内存、IO要求较高,在优化的时候需要监控数据节点的状态,当资源不够的时候,需要在集群中添加新的节点。
  • 负载均衡节点,当一个节点既不配置为主节点,也不配置为数据节点时,该节点只能处理路由请求,处理搜索,分发索引操作等,从本质上来说该客户节点表现为智能负载平衡器。

1.3索引(index):
在ES中, 索引是一组文档的集合。
1.4 文档(doc):
它是以JSON格式定义的特定方式的字段集合。每个文档都属于一个类型,并驻留在一个索引中。每个文档都有一个唯一的标识符,称为UID。
1.5分片(shard):
因为ES是个分布式的搜索引擎, 所以索引通常都会分解成不同部分, 而这些分布在不同节点的数据就是分片. ES自动管理和组织分片, 并在必要的时候对分片数据进行再平衡分配。
1.6副本(replica):
ES默认为一个索引创建5个主分片, 并分别为其创建一个副本分片。
1.7段(segement):
Lucene索引是由多个段组成,段本身是一个功能齐全的倒排索引,使用一个commit文件,记录索引内所有的segment。
段是不可变的,允许Lucene将新的文档增量地添加到索引中,而不用从头重建索引。
对于每一个搜索请求而言,索引中的所有段都会被搜索,并且每个段会消耗CPU的时钟周、文件句柄和内存。这意味着段的数量越多,搜索性能会越低。
为了解决这个问题,Elasticsearch会合并小段到一个较大的段,提交新的合并段到磁盘,并删除那些旧的小段
1.8 倒排索引
Elasticsearch核心技术与实战

1.9分词器(Analysis 和 Analyzer)
Elasticsearch核心技术与实战

分词器(standard)

Elasticsearch核心技术与实战
分词器(keyword)

Elasticsearch核心技术与实战

分词器(stop)

Elasticsearch核心技术与实战

中文分词(需要安装,下载后解压到plugin目录)

Elasticsearch核心技术与实战

2、ES CRUD过程

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

3、常用接口
Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战

Elasticsearch核心技术与实战