1: 阅读和编写文件
ES的每个索引(INDEX) 都被分为碎片,每个碎片都可以有多个副本,这些副本就是复制组,在添加或者删除文档时必须保持同步,否则将会导致从一个副本中读取的数据和从另一个副本中读取的数据结果将完全不同,保持碎片副本同步并从中提供读取数据的过程称为数据复制模型。
2; 基本的写模型(待定)
3:索引API
测试用例,将id为1的输数据插入索引为twitter的文档_doc中,有三个fields , user , post_date 和message
PUT twitter/_doc/1
{
"user":"elasticsaearch",
"post_date":"2019-01-22 11:05:23",
"message":"trying out Elasticsearch"
}
QI
其上的_shards报头提供关于索引操作的复制过程的信息。
total -只在查询过程中索引的分片数(主索引分片数和副本分片数之和)
successful - 表示索引操作(查询)成功的分片数量
failed - 在副本分片上操作失败的情况下包含复制相关错误的信息组
索引操作成功的情况successful至少为1。
查看刚插入的数据
GET twitter/_doc/1
上面的操作中,索引 twitter 和 文档_doc的映射全部是自动完成的,如果需要禁用这个自动功能,在congif/elasticsearch.yml中配置。
action.auto_create_index: false
# index.mapper.dynamic: false -- 该index.开头的配置会导致ES启动报错,解决方案待查。
4: 版本控制
版本信息会随着数据的查询一起返回,数据没更新一次版本号都会更新。
例如 查询刚插入的数据
GET twitter/_doc/1
更新该数据
PUT twitter/_doc/1?version=7
{
"message" : "elasticsearch now has versioning support, double cool!"
}
在每次更新,版本号都会加1