ES序列 | Index API分析
- POST&PUT 创建索引区别
- 自动索引创建设置
- 指定创建行为
- 指定文档路由(Routing)
- POST&PUT 创建索引区别
在HTTP中,PUT语意是代表具有幂等性操作(多次执行都能得到同样的结果)
而且POST则是非幂等,在资源创建时候,执行多次会产生不同的结果
在ES中,使用PUT需要在当前操作索引下指定一个文档ID, 当文档ID不存在时,会进行创建一个文档,如果存在的话,则进行更新,所以在ES里,PUT是具有幂等性,多次执行都能得到同样的结果
PUT test/_doc/1
{
"text" : "hello word"
}
而如果使用POST创建一个文档,是不需要在当前操作索引下进行指定文档ID(不指定文档ID时,ES则会自动生成一个文档ID),当创建文档不指定文档ID时,当前操作是非幂等,多次执行后,会创建多个文档。
# 创建一个文档,执行多次会创建多个文档
POST test/_doc
{
"text" : "hello word!"
}
# 当指定的文档ID存在,则进行更新,不存在则进行新增
POST test/_doc/1
{