ES是什么
ElastticSearch是基于Lucence的全文搜索引擎。
- 一个分布式的实时文档存储,每个字段都可以被索引和存储
- 一个分布式实时分析引擎
- 能胜任上百个节点的拓展,支持PB级的结构化或非结构化的数据
ES和关系数据库对比
关系数据库 | ES |
---|---|
数据库 | 索引 |
表 | 类型 |
行 | 文档 |
面向文档(最顶层的对象,对象内部可以嵌套),一个文档的元数据必须包含以下三个部分:_index
文档在哪存放_type
文档表示的对象类别_id
文档唯一标识
ES的并发控制是通过版本号这样的乐观策略来的
存储的数据行称为索引
倒排索引
文档对应关系数据库中的一行
查询语言(DSL:领域特定语言)
查询类型:
- match查询
相关性匹配,不同于关系数据库的匹配,匹配之后每个结果有一个得分
聚合功能,类似关系数据库的group by
ES屏蔽了分布式系统的复杂性,在后台运行:类似于Kafka的partition和replication