ElasticSearch关键概念
Elasticsearch
- 添加索引
- 一个存储关联数据的地方
- 用来指向一个或者多个分片(shards)的逻辑命名空间(logical namespcase)
- 应用程序直接与索引通信
- 一个分片(shard)
- 一个最小级别的"工作单元(worker unit)"
- 保存索引中所有数据的一部分
- 就是一个Lucene实例
- 就是一个完成的搜索引擎
- 文档存储在分片中,在分片中被索引
- 分片
- Elasticsearch在集群中分发数据关键
- 是数据的容器
- 文档存储在分片中
- 分片分配到集群中的节点上
- 集群扩容或者缩小,elasticsearch将自动在节点上迁移分片,以保证集群平衡
- 主/复制分片(primary / replica shard)
- 分片可以是主分片也可以是复制分配
- 索引中的每个文档属于一个单独的主分片
- 主分片数量决定索引最多存储的数据
- 复制分片是主分片的一个副本
- 提供数据灾备
- 提供读请求
- 索引创建完毕,主分配数量就固定,复制分片数量可以随时调整
数据
- 文档
- 对象(object)和文档(document)是等价相通
- 对象是一个json结构体,类似于哈希、hashmap、字典或者关联数据
- 对象(object)中还可能包含其他对象(object)
- Elasticsearch中文档(document)
- 最顶层结构/跟对象(root object)序列化成json数据以ID标识并存储于elasticsearch中
- 文档元数据(metadata)
- _index:类似于关系型数据库里的"数据库",我们存储和索引关联数据的地方
- _type:类似于关系新数据库中的一个类,定义了属性或与对象关联的数据。
- _id:标识一个唯一的文档
- 索引
- 索引一个文档通过(index API)使数据可以被存储和搜索。
- 获取
- 创建
- 删除
- 版本控制
- 局部更新
- Mget
- 批量
向前是金,向后是土
其实我只想自由飞翔