ES 基本概念
1. 对比¶
关系型数据库[比如MySQL] | 非关系型数据库 |
---|---|
数据库 Datasheet | 索引Index |
表Table | 类型Type |
数据行Row | 文档Document |
数据列 | 字段Field |
SQL | DSL |
表结构schema | 映射mapping |
文档(Document) ES面向文档,文档是所有可搜索数据的最小单元。
理解成关系新数据库中的一条数据。 文档会被序列化成JSON格式,保存在ES中: JSON对象有字段组成,每个字段都有对应的字段类型(字符串/数值/日期...)。 每个文档都会有一个UniquID: 可以自己指定也可以由ES自动生成~
文档的元数据
{ # 元数据,用于标准文档的相关信息 "_index": "accounts", # 文档所属的索引名 "_type": "person", # 文档所属的类型名 "_id": "1", # 文档唯一id "_version": 8, # 文档版本信息 "found": true, "_source": { # 文档的原始json数据 "name": "caimengzhi", # 相关字段 "sex": "male", "job": "SA and Linux" } }
2. 术语¶
-
索引(index): 索引是具有相同结构的文档的集合。 类比关系型数据库中的:数据库。
-
类型(type): 在索引中,可以创建一个或多个类型,类型是索引的逻辑分区。 类比关系型数据库中的:表
-
文档(document): 文档是存储在es中一个一个JSON格式字符串。 类比关系型数据库中的:一行数据
-
字段(field): 类比关系型数据库中的:列

-
来源字段(source field)
: 默认情况下会将原文档存储在_source
字段中。 -
复制(replica)
: 高可用,解决单点问题。(默认2个副本)
-
分片(shard)
: 每个索引都有多个分片,每个分片是一个Lucene索引。用来水平分割扩展数据(默认5个分片)
主分片(primary shard): 每个文档都存储在一个分片中,当你存储一个文档时,系统会先存储在主分片中,然后复制到不同的副本中。 副本分片(replica shard): 每一个分片有0或多个副本,它是主分片的复制.

3. Rest API¶
RESTful 接口 URL 的格式是:
http://cluster的地址: 9200/<index>I<type>I [<id>]
- 其中,index, type 是必须提供的( index 可以理解为数据库;type 理解为数据表)
- id 是可选的(相当于数据库表中记 录的主键是唯一的。如果不提供, Elasticsearch 会向动生成。
- 增 、删、改,查分别对应 HTTP 请求的 PUT 、DELETE、POST、GET方法。