首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么Elasticsearch取代文档而不是创建新文档?

Elasticsearch取代文档而不是创建新文档的原因有以下几点:

  1. 数据一致性:Elasticsearch是一个分布式搜索和分析引擎,它使用倒排索引来加速搜索和分析操作。当需要更新文档时,Elasticsearch会直接在原始文档上进行更新,而不是创建新的文档。这样可以确保数据的一致性,避免了在更新过程中可能出现的数据冲突和不一致性。
  2. 性能优化:Elasticsearch的倒排索引结构适用于高效的全文搜索和分析操作。如果每次更新文档都创建新的文档,将会导致索引数据的增长,进而影响搜索和分析的性能。通过直接更新原始文档,Elasticsearch可以避免不必要的索引数据增长,提高搜索和分析的性能。
  3. 存储空间优化:创建新文档会占用额外的存储空间。对于大规模的数据集和频繁更新的场景,创建新文档可能会导致存储空间的浪费。通过直接更新原始文档,Elasticsearch可以节省存储空间,提高存储效率。
  4. 数据历史追踪:在某些场景下,需要对数据的历史变更进行追踪和分析。如果每次更新都创建新文档,将会导致数据历史追踪的复杂性增加。通过直接更新原始文档,Elasticsearch可以更方便地进行数据历史追踪和分析。

总结起来,Elasticsearch取代文档而不是创建新文档的主要原因是为了确保数据一致性、优化性能、节省存储空间,并方便进行数据历史追踪和分析。

腾讯云相关产品推荐:腾讯云搜索引擎 Elasticsearch 产品介绍链接地址:https://cloud.tencent.com/product/es

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么你应该看官方文档不是搜索博客文章

即使搜索到写得很详细的正经文章,也可能因为文章不是面向初学者的,从而严重打击你的学习积极性。今天我们以学习Vue为例,说明这样做对你有什么危害。...为什么文档更好 我们来看看Vue的官方文档[1]。从安装到使用,非常简单。...安装,只需要在html文件里面引用一个js就好了,如下图所示: 并且,官方文档明确说明,不推荐新手使用vue-cli: 接下来,文档给出了一个非常简单的例子: 根据这个例子,我们自己来写一个网页。...我们创建两个文件:test.html和test.js。...大家可以阅读Vue的官方文档,可以发现Vue确实非常简单。 总结 从Vue的这个例子里面,我们应该看到,实际上学习一门技术,最好的地方就是它的官方文档不是在搜索引擎上到处搜索辣鸡博客。

63020

Elasticsearch专栏 02】深入探索:Elasticsearch为什么使用倒排索引不是正排索引

为什么使用倒排索引不是正排索引? Elasticsearch选择使用倒排索引不是正排索引,主要是基于倒排索引在处理全文搜索和大规模数据集时的优势。...下面将详细解释为什么Elasticsearch更倾向于使用倒排索引,并提供一些简化的代码片段来说明这两种索引结构的基本差异。...正排索引可以快速找到文档中包含的单词,但对于查找包含特定单词的所有文档不是很高效。...3.小结 Elasticsearch选择使用倒排索引不是正排索引,主要是基于倒排索引在处理搜索查询时的优势。 正排索引是一种基于文档的索引结构,它将文档中的每个词汇作为关键词进行排序和存储。...当查询请求到来时,Elasticsearch会根据查询中的词汇在文档中的出现频率和位置信息,对文档进行排序和匹配。

7910

Elasticsearch 为什么会产生文档版本冲突?如何避免?

1、Elasticsearch 版本冲突复现 先让大家直观的看到 Elasticsearch 文档版本冲突。...当我们在 Elasticsearch创建一个新文档时,它会为该文档分配一个_version: 1。...一句话:Elasticsearch 使用_version来鉴别文档是否已更改。 3、Elasticsearch 文档版本产生背景 试想一下,如果没有文档版本?当有并发访问会怎么办?...5、Elasticsearch 文档版本冲突的本质 一句话,Elasticsearch 文档冲突的本质——老版本覆盖掉了新版本。 6、如何解决或者避免 Elasticsearch 文档版本冲突?...使用外部版本类型 external 时,系统会检查传递给索引请求的版本号是否大于当前存储文档的版本。 如果为真,也就是新版本大于已有版本,则文档将被索引并使用的版本号。

2.9K20

为什么我们选择使用 React 不是 Angular 构建 UI

为什么选择 React 当在考虑构建我们 UI 的不同选择时,React 显然是一个明智的选择,因为它的描述性,高效性和灵活性。...这些封装的组件管理自己的状态,因为组件逻辑是用 JavaScript 不是模板编写的,你可以轻松地通过应用程序传递丰富的数据,不用担心 DOM 中的状态。...使用 React,你应该永远记住,它实际上并不是一个 JS 框架,而是一个用于渲染视图的库。...除此之外,React 组件可以在应用程序之间创建和重用。 ReactJS 和 AngularJS 的主要区别在于 React 是以 JS 为中心的, AngularJS 是以 HTML 为中心。...总的来说,在基于 React 上构建的 UI,我们克服了困难,但我们从来没有忘记过我们的主要目标 —— 减少耗费的时间以提升价值、数据的灵活性,同时留下进步和创新的空间。

2.3K30

为什么我们选择使用 React 不是 Angular 构建 UI

为什么选择 React 当在考虑构建我们 UI 的不同选择时,React 显然是一个明智的选择,因为它的描述性,高效性和灵活性。...这些封装的组件管理自己的状态,因为组件逻辑是用 JavaScript 不是模板编写的,你可以轻松地通过应用程序传递丰富的数据,不用担心 DOM 中的状态。...使用 React,你应该永远记住,它实际上并不是一个 JS 框架,而是一个用于渲染视图的库。...除此之外,React 组件可以在应用程序之间创建和重用。 ReactJS 和 AngularJS 的主要区别在于 React 是以 JS 为中心的, AngularJS 是以 HTML 为中心。...总的来说,在基于 React 上构建的 UI,我们克服了困难,但我们从来没有忘记过我们的主要目标 —— 减少耗费的时间以提升价值、数据的灵活性,同时留下进步和创新的空间。

2.7K60

Elasticsearch为什么会有大量文档插入后变成 deleted?

数据库读数据,批量插入到es里,id自定义用的数据库的主键值,批量插入后,没有报错,可是用cerebro看,大量文档的状态是deleted,数据库中的主键值百分百没有重复的,不知道为什么会这样? ?...2、文档版本号_version 在 Mysql 中插入一条记录,我们直观显示的是一行记录。 Elasticsearch文档型搜索引擎,我们直观看到的是一条 json 记录。...这里:deleted 为什么是:2492 = 1246 的2倍。...4.2 大量文档的状态是deleted,为什么? 我猜测:同步的时候,有相同 id 的文档数据写入了。...也就是说:同一条数据写入了两次或多次,这样在 Elasticsearch 里面会做覆盖处理(本质是更新)。 如前所述,更新的本质是:原有文档标记为已删除,然后再插入一条文档

2.8K30

elasticsearch-索引库操作(轻松创建)、文档增删改查、批量写入(效率倍增)

elasticsearch[一]-索引库操作(轻松创建)、文档增删改查、批量写入(效率倍增) 1、初始化 RestClient 在 elasticsearch 提供的 API 中,与 elasticsearch...String latitude; private String pic; } 与我们的索引库结构存在差异: longitude 和 latitude 需要合并为 location 因此,我们需要定义一个的类型...语法说明 新增文档的 DSL 语句如下: POST /{索引库名}/_doc/1 { "name": "Jack", "age": 21 } 对应的 java 代码如图: 可以看到与创建索引库类似...,同样是三步走: 1)创建 Request 对象 2)准备请求参数,也就是 DSL 中的 JSON 文档 3)发送请求 变化的地方在于,这里直接使用 client.xxx() 的 API,不再需要 client.indices...小结 文档操作的基本步骤: 初始化 RestHighLevelClient 创建 XxxRequest。

49910

微搭低代码上了,可以支持直接创建腾讯文档

这几天,微搭官方动作频频,在上周已经开放了腾讯会议的集成,本周已经开放了腾讯文档的集成。...具体操作方法如下: 步骤一 创建外部数据源 登录低码控制台,点击数据源管理菜单,点击新建外部数据源按钮 [在这里插入图片描述] 在弹出的新建窗口,选择腾讯文档,需要给腾讯文档进行授权 [在这里插入图片描述...] [在这里插入图片描述] 在弹出的界面选择QQ登录 [在这里插入图片描述] 点击同意进行授权 [在这里插入图片描述] 授权成功后即可输入数据源的名称和标识,点击开始新建按钮完成数据源的创建 [在这里插入图片描述...] 创建成功后会将腾讯文档公开的接口都一并创建好 [在这里插入图片描述] 步骤二 创建应用 数据源创建好后,建立应用,点击应用管理菜单,点击创建空白应用按钮 [在这里插入图片描述] 创建一个普通应用 [...在这里插入图片描述] 输入应用的名称和标识完成应用的创建 [在这里插入图片描述] 应用创建好后,我们增加一个表单区块 [在这里插入图片描述] 选中表单容器,修改一下数据源,改为我们刚刚创建的外部数据源

91250

Elasticsearch 6.x索引预排序分析

IndexSorter 工具是第一次在索引写入阶段不是查询阶段对文档进行排序的尝试。 针对索引预排序,社区提出了一个的概念“early termination”。...刚才介绍的离线排序的方案不能满足有大量文档更新的场景,这也是为什么最终离线排序方案会被其他方案取代。为了替换离线排序的方案,我们提出了一个的解决方案,在文档的 merge 阶段进行排序。...在文档数量为百万级别的场景中,这样的排序取前N的场景是非常耗时间的。 每当刷新(refresh)操作被触发,Lucene 会为索引创建一个的段。的段包含上一次刷新后的所有加入的文档。...为了取代静态的离线合并工具(如上面提到的 IndexSorter ),引入了一种的segment合并策略,允许在 segment 合并的时候,按用户指定的字段对文档重新排序。...我们把排序的操作提前到 segment 刷盘的阶段,不是等到 merge 阶段才排序多个 segment :LUCENE-7579。

11.6K181

ElasticSearch权威指南:基础入门(中)

而且很脆弱,一些查询字符串中很小的语法错误,像 - , : , / 或者 " 不匹配等,将会返回错误不是搜索结果。...不是假设你的映射是正确的。 自定义域映射 尽管在很多情况下基本域数据类型已经够用,但你经常需要为单独域自定义映射,特别是字符串域。...如果你通过索引数组来创建的域,Elasticsearch会用数组中第一个值的数据类型作为这个域的类型。 当你从 Elasticsearch 得到一个文档,每个数组的顺序和你当初索引文档时一样。...它将一个不变的常量评分应用于所有匹配的文档。它被经常用于你只需要执行一个 filter 没有其它查询(例如,评分查询)的情况下。可以使用它来取代只有 filter 语句的 bool 查询。...它将执行与前述查询相同的查询,并且所有的文档将像之前一样随机返回,这些文档只是有了一个分数不是零分。

5.6K41

ElasticSearch权威指南:基础入门(下)

更多的配置选项见 动态映射文档 。 缺省映射 通常,一个索引中的所有类型共享相同的字段和设置。 _default_ 映射更加方便地指定通用设置,不是每次创建类型时都要重复设置。...对现有数据的这类改变最简单的办法就是重新索引:用的设置创建的索引并把文档从旧的索引复制到的索引。 字段_source的一个优点是在Elasticsearch中已经有整个文档。...在这个章节,我们回答以下问题: 为什么搜索是 近 实时的? 为什么文档的 CRUD (创建-读取-更新-删除) 操作是 实时 的?...通过增加的补充索引来反映新近的修改,不是直接重写整个倒排索引。每一个倒排索引都会被轮流查询到--从最早的开始--查询完后再对结果进行合并。...这就是为什么我们说 Elasticsearch 是 近 实时搜索: 文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。

3.8K42

Elasticsearch文档和映射

在段合并期间,标记为已删除的文档不会写入段,因此段合并实际上是从Elasticsearch中删除已删除的文档时。...文件通过API Elasticsearch的API允许您单独和批量创建,获取,更新,删除和索引文档(取决于端点)。...为什么要把它放两次?因为它很重要。Grok吧! 用映射创建结构 为了构建搜索文档Elasticsearch依赖于映射。映射可以由用户定义,并且根据用例,可以从简单到极其复杂。...如果您在2.3之后运行Elasticsearch的版本,不是所描述的手动过程,您需要做的就是将原始(源)和(目标)索引传递给 _reindex 端点。...请注意,要重新索引,您需要使用新名称创建索引 - 您无法将文档重新索引到与原始名称相同的索引中。

1.7K10

Elasticsearch】初识elasticsearch

被广泛应用在日志数据分析、实时监控等领域: elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。...1.1.4.为什么不是其他搜索技术?...倒排索引则相反,是先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。是根据词条找文档的过程。 是不是恰好反过来了? 那么两者方式的优缺点是什么呢?...倒排索引: 优点: 根据词条搜索、模糊搜索时,速度非常快 缺点: 只能给词条创建索引,不是字段 无法根据字段做排序 1.3.es的一些概念 elasticsearch中有很多独有的概念...文档数据会被序列化为json格式后存储在elasticsearch中: Json文档中往往包含很多的字段(Field),类似于数据库中的列。

24540

2 万字详解,彻底讲透 Elasticsearch

为什么我们集群状态是 Yellow 不是 Green 呢?虽然我们拥有所有的 2 个主分片,但是同时设置了每个主分片需要对应两份副本分片,此时只存在一份副本分片。...创建索引的流程是什么样的? ES 如何将索引数据分配到不同的分片上的?以及这些索引数据是如何存储的? 为什么说 ES 是近实时搜索引擎文档的 CRUD (创建-读取-更新-删除) 操作是实时的?...这条索引数据为什么被写到 S0 上不写到 S1 或 S2 上?那条数据为什么又被写到 S3 上不写到 S0 上了? 首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。...这就是为什么我们说 Elasticsearch 是近实时搜索,因为文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。...可能你正在使用 Elasticsearch 索引大量的日志文件, 你可能想优化索引速度不是>近实时搜索。

47750

2 万字详解,吃透 ES!

为什么我们集群状态是 yellow 不是 green 呢?虽然我们拥有所有的2个主分片,但是同时设置了每个主分片需要对应两份副本分片,此时只存在一份副本分片。所以集群不能为 green 的状态。...之后我们再讲解为什么我们创建索引时需要建立静态映射不使用动态映射。...创建索引的流程是什么样的?ES如何将索引数据分配到不同的分片上的?以及这些索引数据是如何存储的?为什么说ES是近实时 搜索引擎文档的 CRUD (创建-读取-更新-删除) 操作是实时的?...这条索引数据为什么被写到S0上不写到S1或S2上?那条数据为什么又被写到S3上不写到S0上了? 首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。...这就是为什么我们说 Elasticsearch 是近实时搜索 ,因为文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。

47920

全文搜索引擎Elasticsearch,这篇文章给讲透了

为什么我们集群状态是 yellow 不是 green 呢?虽然我们拥有所有的2个主分片,但是同时设置了每个主分片需要对应两份副本分片,此时只存在一份副本分片。所以集群不能为 green 的状态。...之后我们再讲解为什么我们创建索引时需要建立静态映射不使用动态映射。...创建索引的流程是什么样的?ES如何将索引数据分配到不同的分片上的?以及这些索引数据是如何存储的?为什么说ES是近实时搜索引擎文档的 CRUD (创建-读取-更新-删除) 操作是实时的?...这条索引数据为什么被写到S0上不写到S1或S2上?那条数据为什么又被写到S3上不写到S0上了? 首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。...这就是为什么我们说 Elasticsearch 是近实时搜索,因为文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。

9.6K1513

Elasticsearch详解

为什么我们集群状态是 Yellow 不是 Green 呢?虽然我们拥有所有的 2 个主分片,但是同时设置了每个主分片需要对应两份副本分片,此时只存在一份副本分片。...创建索引的流程是什么样的? ES 如何将索引数据分配到不同的分片上的?以及这些索引数据是如何存储的? 为什么说 ES 是近实时搜索引擎文档的 CRUD (创建-读取-更新-删除) 操作是实时的?...这条索引数据为什么被写到 S0 上不写到 S1 或 S2 上?那条数据为什么又被写到 S3 上不写到 S0 上了? 首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。...这就是为什么我们说 Elasticsearch 是近实时搜索,因为文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。...可能你正在使用 Elasticsearch 索引大量的日志文件, 你可能想优化索引速度不是>近实时搜索。

36410

原来 Elasticsearch 还可以这么深入的理解

为什么我们集群状态是 Yellow 不是 Green 呢?虽然我们拥有所有的 2 个主分片,但是同时设置了每个主分片需要对应两份副本分片,此时只存在一份副本分片。...创建索引的流程是什么样的? ES 如何将索引数据分配到不同的分片上的?以及这些索引数据是如何存储的? 为什么说 ES 是近实时搜索引擎文档的 CRUD (创建-读取-更新-删除) 操作是实时的?...这条索引数据为什么被写到 S0 上不写到 S1 或 S2 上?那条数据为什么又被写到 S3 上不写到 S0 上了? 首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。...这就是为什么我们说 Elasticsearch 是近实时搜索,因为文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。...可能你正在使用 Elasticsearch 索引大量的日志文件, 你可能想优化索引速度不是>近实时搜索。

80730

看完这篇还不会Elasticsearch,我跪搓衣板!

为什么我们集群状态是 Yellow 不是 Green 呢?虽然我们拥有所有的 2 个主分片,但是同时设置了每个主分片需要对应两份副本分片,此时只存在一份副本分片。...为什么说 ES 是近实时搜索引擎文档的 CRUD (创建-读取-更新-删除) 操作是实时的? 以及 Elasticsearch 是怎样保证更新被持久化在断电时也不丢失数据?...这条索引数据为什么被写到 S0 上不写到 S1 或 S2 上?那条数据为什么又被写到 S3 上不写到 S0 上了? 首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。...这就是为什么我们说 Elasticsearch 是近实时搜索,因为文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。...可能你正在使用 Elasticsearch 索引大量的日志文件, 你可能想优化索引速度不是>近实时搜索。

72510
领券