-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域(字段,属性)