Elasticsearch:index,create,update区别

index,create,update都是可以实现插入功能的,但是实现原理并不完全相同。

create

  • 如果待插入文档指定了文档_id,就检查文档_id是否存在,存在则插入失败。

index

  • 如果待插入文档指定了文档_id,就检查文档是否存在,不存在就插入,存在就检查_version。
  • 如果待插入文档没有指定了_version,文档的_version递增;如果待插入文档指定了_version,与原文档_version一致,覆盖成功,否者插入失败。

update

  • 每次update都会获取整个文档信息,然后对特定字段进行修改,这也导致会遍历一遍原始文档,性能会有很大的影响。

由于Lucene中的update其实就是覆盖替换,并不支持针对特定Field进行修改,Elasticsearch中的update为了实现针对特定字段修改,在Lucene的基础上做了一些改动。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,437评论 0 9
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,597评论 0 4
  • 思考几个问题: 为什么搜索是 近实时 的? 为什么文档的 CRUD (创建-读取-更新-删除) 操作是 实时 的?...
    白想519阅读 17,814评论 3 64
  • ElasticSearch版本2.4.2,新版本有待学习 什么是文档? 通常情况下,我们使用的术语 对象 和 文档...
    严重思想跑偏患者阅读 758评论 0 0
  • 每天,我们有同样的24小时,生活在同样的社会里,但是我们却是不同的物种。首先,不同的阶层,看到的世界是不一样的,各...
    艺涵JS阅读 212评论 0 0