es的概念
Es,全称ElasticSearch,是一个开源的分布式搜索引擎,底层基于 Lucene 实现。
es和传统db数据库的对应关系
传统Db | ElasticSearch |
---|---|
数据库(database) | 索引(index) |
表(tables) | 类型(types) |
行(rows) | 文档(documents) |
列(columns) | 字段(fields) |
es可以包含多个索引,每个索引可以包含多个类型,每个类型可以包含多个文档,每个文档可以包含多个字段。
es底层实现原理
es底层采用分片机制,分片就是Lucene索引,即倒排索引。
es的倒排索引
一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,有一个包含它的文档列表。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。这种索引表中的每一项都包括一个属性值和具有该属性值的各种记录的地址。不是由记录来确定属性值,而是由属性值来确定记录的位置,所以就成为倒排索引。
es的核心概念
索引(Index):一个或多个文档的集合。每个索引都有一个唯一的名称,并且可以包含零个或多个类型(在Elasticsearch 7.x版本中,类型被弃用,默认为_doc)。
文档(Document):索引中存储的数据,类似于数据库中的一行。
映射(Mapping):定义了索引中文档的结构,包括字段的类型、是否索引等。
分片(Shard):将索引分成多个分片以提高性能和可靠性。
副本(Replica):每个主分片的副本,用于数据冗余和故障恢复。