前言
本文基于elasticsearch7.3.0版本
本文内容如下
create
当我们索引一个文档,怎么确认我们正在创建一个完全新的文档,而不是覆盖现有的呢?
使用create
不指定文档id–create
# 请求
POST my_index/_doc
{
"tag":"不指定id"
}
# 响应
{
"_index" : "my_index",
"_type" : "_doc",
// 每次返回的id不一样
"_id" : "XxB2sW8B0oo5OtBYmEWT",
"_version" : 1,
// 这里表明是create
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 1,
"_primary_term" : 1
}
指定文档id,不指定版本号,文档不存在–create
通过op_type=create指定操作类型
# 请求
POST my_index/_doc/3?op_type=create
{
"tag":"指定id"
}
# 上面请求等价于
POST my_index/_doc/3/_create
{
"tag":"指定id"
}
# 响应
{
"_index" : "my_index",
"_type" : "_doc",
"_id" : "3",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 7,
"_primary_term" : 1
}
指定文档id,不指定版本号,文档存在–报错
# 请求
POST my_index/_doc/3?op_type=create
{
"tag":"指定id"
}
# 响应
{
"error": {
"root_cause"