ElasticSearch - 初识
-1. 基本概念
ElasticSearch 使用JSON文档作为存储对象 一个Elasticsearch集群(cluster)可以包含多个索引(index),相应的每个索引可以包含多个类型(type) 。 每个类型存储着多个文档(doc),每个文档又有多个属性(field)。
-2. 分片
Elasticsearch 是利用分片将数据分发到集群内各处的。
分片是数据的容器,文档保存在分片内,分片又被分配到集群内的各个节点里。
当你的集群规模扩大或者缩小时, Elasticsearch 会自动的在各节点中迁移分片,使得数据仍然均匀分布在集群里。
一个分片可以是 主 分片或者 副本 分片。
索引内任意一个文档都归属于一个主分片,所以主分片的数目决定着索引能够保存的最大数据量。
一个副本分片只是一个主分片的拷贝。
副本分片作为硬件故障时保护数据不丢失的冗余备份,并为搜索和返回文档等读操作提供服务。
拥有越多的副本分片时,也将拥有越高的吞吐量
PUT /index1
{
"settings" : {
"number_of_shards" : 3, #主分片
"number_of_replicas" : 1 #副分片
}
}
GET /_cluster/health
-3. API example
PUT /{index}/{type}/{id}
POST /{index}/{type}
GET /{index}/{type}/{id}?pretty
GET /{index}/{type}/{id}?_source={filed1},{field2}
GET /{index}/{type}/{id}/_source
DELETE /{index}/{type}/{id}
-4. _version
当文档被修改时版本号递增
-5. 名词对比
DB Type | c1 | c2 | c3 | c4 |
---|---|---|---|---|
Relational DB | Databases数据库 | Tables表 | Rows行 | Columns列 |
Elasticsearch | Indices索引 | Types类型 | Documents文档 | Fields域(字段,属性) |