Elasticsearch 索引文档时create、index、update的区别【学习记录】
在Elasticsearch中,创建(索引)文档时,create
、index
和update
这三个操作名称容易引起混淆。实际上,它们各自有不同的用途:
create
操作:通常用于创建一个新文档,并且文档的ID已知。如果ID已存在,则会失败。index
操作:用于创建新文档或更新现有文档,如果文档ID不存在,它会创建一个新文档;如果文档ID已存在,它会更新现有文档。update
操作:用于更新现有文档。它可以是全量更新或增量更新,全量更新会替换文档中的所有字段,而增量更新会只更新指定字段。
在Elasticsearch中,使用REST API进行操作时,可以这样使用:
# 创建一个新文档,如果ID已存在会失败
PUT /index/type/id
{
"json_data": "your_document_data"
}
# 索引或创建一个新文档
PUT /index/type/id
{
"json_data": "your_document_data"
}
# 更新一个现有文档
POST /index/type/id/_update
{
"doc": {
"field_to_update": "new_value"
}
}
注意:在Elasticsearch 7.0+版本中,type
的概念已被移除,因此上述例子中的index/type/id
可以简化为index/_doc/id
。
评论已关闭