ElasticSearch简介
ES是一个基于Lucene实现的开源、分布式、Restful的全文本搜索引擎;此外,他还是一个分布式实时文档存储,其中每个文档的每个
field均是被索引的数据,且可被搜索;也是一个带实时分析功能的分布式搜索引擎,能够扩展至数以百计的节点实时处理PB级的数据。
一、基本组件
索引(index):文档容器,索引是具有类似属性的文档的集合,类似于表;索引名必须使用小写字母;
类型(type):类型是索引内部的逻辑分区,其意义完全取决于用户需求。一个索引内部可以定义一个或多个类型。
一般来说,类型就是拥有相同的域的文档的预定义
文档(document):文档是Lucence索引和搜索的院子单位,它包含了一个或多个域,是域的容器,基于JSON格式表示。
每个域的组成部分:一个名字,一个或多个值;拥有多个值的域,通常称为多值域
映射(mapping):原始内容存储为文档之前需要事先进行分析,例如切词,过滤掉某些词;映射用于定义此分析机制改如何实现;
除此之外,ES还为映射提供了诸如将域中的内容排序等功能;
二、ES的集群组件
Claster:ES的集群标识为集群名称;默认为"elasticsearch",节点就是靠此名字来决定加入到哪个集群中,一个节点只能属于一个集群
Node:运行了单个ES实力的主机即为节点,用于存储数据、参与集群索引及搜索操作。节点的标识靠节点名。
Shard:将索引切割成为的物理存储组件;但每一个shard都是一个独立且完整的索引;创建索引时,ES默认将其分割为5个shard,也可按需定义,创建后不可修改;
shard有两种类型:primary shard和replica shard;Replica用于数据冗余及查询时的负载均衡,每个主shard的副本数量可自定义,且可动态修改;
三、ES Cluster工作过程
启动时,通过多播(默认)或单播方式在9300/tcp查找同一集群中的其他节点,并与之建立通信;
集群中的所有节点会选举出一个主节点负责管理整个集群状态,以及在集群范围内决定各shards的分布方式;
站在用户角度而言,每个均可接收并相应用户的各类请求;
集群有状态:green,red,yellow
官方站点:https://www.elastic.co