目录
- ElasticSearch
- ElasticSearch概念
- 1.es基本概念
- 2.es如何实现高可用
- 3.倒排索引
ElasticSearch
ElasticSearch概念
1.es基本概念
- index索引:es中存储数据的基本单位是索引,所有的数据存入对应的索引。类似一个数据库。在数据数据库中有很多类型的表。所以索引是最基本的单位。
- type类型:一个索引中有多个类型。例如在订单index中,建立两个type,一个是实物商品订单type,一个是虚拟商品订单type,这两个type大部分字段是一样的,少部分字段是不一样的。这就类似于数据中的表。index为数据库,type是表,一个数据库中可以有多个表,所以可以有多个type。
- mapping:有了类型之后,还得有表,表的定义是由表结构制定的。所以,在type中mapping即是表结构。
- document :在type中写入一条数据,称为一条document,document就类似于表中的一条数据,里面有多个字段的值。
2.es如何实现高可用
在es中索引可以拆分为多个shard,每个shard存储部分数据。
ES 集群多个节点,会自动选举一个节点为 master 节点,这个 master 节点其实就是干一些管理的工作的,比如维护索引元数据、负责切换 primary shard 和 replica shard 身份等。要是 master 节点宕机了,那么会重新选举一个节点为 master 节点。
如果是非 master 节点宕机了,那么会由 master 节点,让那个宕机节点上的 primary shard 的身份转移到其他机器上的 replica shard。接着你要是修复了那个宕机机器,重启了之后,master 节点会控制将缺失的 replica shard 分配过去,同步后续修改的数据之类的,让集群恢复正常
3.倒排索引
在搜索引擎中,每个文档都有一个对应的文档ID,文档内容被表示为一系列关键词的集合。例如:文档1经过分词,提取到了20个关键词,每个关键词都会记录它在文档中出现的次数和出现的位置。
- 倒排索引中的所有词项对应一个或多个文档;
- 倒排索引中的词项根据字典顺序升序排列