- 特点:
- 弹性, 高可用
- 可预见, 可用
- 分布式, 不需要其他组建, 实时分发
- 各个节点对等的网络结构, 某个节点故障其他节点自动替补
- 完全支持lucene的实时搜索
- 基本操作
- 查询:GET
- 更新:POST/PUT/UPDATE
- 删除:DELETE
- 添加:PUT/POST
- 和传统型数据库的对比
- 索引(Index):Index相当于Database
- 类型(Type):Type相当于table,之前的版本中,索引和文档中间还有个类型的概念,每个索引下可以建立多个类型,文档存储时需要指定index和type。从6.0.0开始单个索引中只能有一个类型,7.0.0以后将将不建议使用,8.0.0 以后完全不支持。弃用该概念的原因:我们虽然可以通俗的去理解Index比作 SQL 的 Database,Type比作SQL的Table。但这并不准确,因为如果在SQL中,Table 之前相互独立,同名的字段在两个表中毫无关系。但是在ES中,同一个Index 下不同的 Type 如果有同名的字段,他们会被 Luecence 当作同一个字段 ,并且他们的定义必须相同。所以我觉得Index现在更像一个表,而Type字段并没有多少意义。目前Type已经被Deprecated,在7.0开始,一个索引只能建一个Type为_doc。
- 文档(Document) :相当于数据库中的row,是可以被索引的基本单位,虽然在一个索引中有多分文档,但这些文档的结构是一致的,并在第一次存储的时候指定, 文档属于一种类型(type),各种各样的类型存在于一个索引中。
关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns)
Elasticsearch ⇒ 索引 ⇒ 类型 ⇒ 文档 ⇒ 字段(Fields)
- Mapping:相当于数据库中的schema,用来约束字段的类型