ElasticSearch关键概念

Elasticsearch

  • 添加索引
    • 一个存储关联数据的地方
    • 用来指向一个或者多个分片(shards)的逻辑命名空间(logical namespcase)
    • 应用程序直接与索引通信
  • 一个分片(shard)
    • 一个最小级别的"工作单元(worker unit)"
    • 保存索引中所有数据的一部分
    • 就是一个Lucene实例
    • 就是一个完成的搜索引擎
    • 文档存储在分片中,在分片中被索引
  • 分片
    • Elasticsearch在集群中分发数据关键
    • 是数据的容器
    • 文档存储在分片中
    • 分片分配到集群中的节点上
    • 集群扩容或者缩小,elasticsearch将自动在节点上迁移分片,以保证集群平衡
  • 主/复制分片(primary / replica shard)
    • 分片可以是主分片也可以是复制分配
    • 索引中的每个文档属于一个单独的主分片
    • 主分片数量决定索引最多存储的数据
    • 复制分片是主分片的一个副本
      • 提供数据灾备
      • 提供读请求
    • 索引创建完毕,主分配数量就固定,复制分片数量可以随时调整

数据

  1. 文档
    1. 对象(object)和文档(document)是等价相通
    2. 对象是一个json结构体,类似于哈希、hashmap、字典或者关联数据
    3. 对象(object)中还可能包含其他对象(object)
    4. Elasticsearch中文档(document)
      1. 最顶层结构/跟对象(root object)序列化成json数据以ID标识并存储于elasticsearch中
    5. 文档元数据(metadata)
      1. _index:类似于关系型数据库里的"数据库",我们存储和索引关联数据的地方
      2. _type:类似于关系新数据库中的一个类,定义了属性或与对象关联的数据。
      3. _id:标识一个唯一的文档
  2. 索引
    1. 索引一个文档通过(index API)使数据可以被存储和搜索。
  3. 获取
    1. 获取文档
      1. GET /website/blog/123?pretty
      2. Pretty 美化json输出
      3. _sourc包含原始文档
      1. GET /website/blog/123?_source=title,text
      1. curl -i -XHEAD http://localhost:9200/website/blog/123
    1. PUT /websit/blog/123

      {

          "title":"my first blog entry"

          ……

      }

  4. 创建
  5. 删除
  6. 版本控制
  7. 局部更新
  8. Mget
  9. 批量
posted @ 2017-03-17 18:43  joqk  阅读(270)  评论(0编辑  收藏  举报