大量删除文档会影响ES查询性能吗

2024-01-02

在我的 ES 集群中,我几乎没有读取大量索引(开始看到这些索引的性能问题),该集群拥有大约 5000 万个文档,并注意到其中大多数文档的总文档数的 25% 左右被删除,我知道当后台合并操作发生时,这些已删除的文档数量会随着时间的推移而减少,但就我而言,这些计数始终约为文档总数的 25% 左右,我有以下问题/疑虑:

  1. 这些巨大的删除数量是否会影响搜索性能,因为它们仍然是 lucene 不可变段的一部分,并且搜索发生在所有段上并返回文档的最新版本,因此不可变段的大小会很高,因为它们包含大量已删除的内容docs,然后另一个操作来找出 doc 的最新版本。
  2. 如果删除的文档数量巨大,定期合并操作是否会耗时且效率低下?
  3. 有什么方法可以一次性删除这些大量已删除的文档,因为看起来后台合并操作无法跟上大量已删除的文档?

Thanks


您删除的文档仍然是索引的一部分,因此它们会影响搜索性能(但我无法告诉您这是否会产生巨大影响)。

对于定期合并,Lucene“不愿意”合并重段,因为它需要一些磁盘空间并产生大量 IO。

通过以下方式,您可以获得有关您的细分市场的一些宝贵见解索引段 API https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-segments.html

如果您的段接近 5GB 限制,则它们很可能不会自动合并,直到它们大部分由已删除的文档构成。

您可以使用以下命令强制合并索引强制合并API https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html

请记住,强制合并可能会对大型索引的集群产生一些压力。存在仅删除文档的选项,这应该会减轻负担。

only_expunge_deletes(可选,布尔值)如果为 true,则仅删除 包含文档删除的段。默认为 false。

在 Lucene 中,文档并不是从段中删除;而是从段中删除。刚刚标记为 已删除。在合并期间,会创建一个新段,该段不会 包含那些文档删除。

Regards

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大量删除文档会影响ES查询性能吗 的相关文章

  • Elasticsearch 查询时间增加会产生顺序不足的结果

    给定搜索关键字的 ES 搜索结果one two three申请后好像出错了boost每个关键字的功能 请帮助我修改我的 错误 查询 以实现下面我所描述的 预期结果 我在ES1 7 4与卢塞恩4 10 4 提升标准 three 被认为是最重要
  • 性能 - String.charAt(0) 与 /^.{1}/

    从概念上讲哪个应该更快 String charAt 0 or 1 regex String charAt 0 必须处理和应用正则表达式 速度测试资源 Paul S https stackoverflow com users 1615483
  • 更改为通用接口对性能的影响

    我使用 Visual Studio 使用 C NET 开发应用程序 ReSharper 在我的方法原型中经常建议我用更通用的类型替换输入参数的类型 例如 如果我仅在方法主体中使用带有 foreach 的列表 则使用 List 和 IEnum
  • 代表和结构的速度问题

    我遇到了一些与结构和委托有关的速度问题 采用以下控制台应用程序代码 public delegate string StringGetter public class LocalString public LocalString string
  • 如何加快编辑距离计算速度

    我正在尝试运行模拟来测试平均值编辑距离 http en wikipedia org wiki Levenshtein distance之间随机 二进制字符串 我的程序是用 python 编写的 但我正在使用这个C扩展 https githu
  • ElasticSearch - 字符串字段长度的统计方面

    我想检索有关字符串字段的数据 例如最小 最大和平均长度 通过计算字符串内的字符数 我的问题是聚合 http www elasticsearch org guide en elasticsearch reference current sea
  • ElasticSearch 匹配多个前缀术语

    我试图为 ElasticSearch 提供一个包含多个术语的查询 然后给出匹配的文档 其中指定的术语位于目标字段中的任何位置 这些术语可以是完整的单词或单词前缀 示例文档 msg 你好 我是一条短信 示例查询字符串 你好消息 你好 和 消息
  • 您可以从 MethodInfo 对象获取 Func (或类似的)吗?

    我意识到 一般来说 使用反射会对性能产生影响 实际上 我本人根本不喜欢反思 这纯粹是学术问题 假设存在一些如下所示的类 public class MyClass public string GetName return My Name 请耐
  • 样式组件如何影响性能?

    使用样式组件是否比样式表更会降低 Web 应用程序的速度 如果我关心性能并且没有任何依赖于 props 的样式 我是否应该放弃样式组件并使用样式表 当您有很多小组件时 同时使用样式化组件渲染 性能开销可能会很有意义 绝对值得测试以删除小元素
  • 从 JavaScript 数组中获取对象值的最大值和最小值

    从 JavaScript 对象数组中获取最大值和最小值的最佳方法是什么 Given var a x 1 y 0 x 1 y 10 x 12 y 20 x 61 y 10 var minX Infinity maxX Infinity for
  • Elasticsearch 聚合过滤器

    因为我在谷歌上找不到任何东西 是否可以在elasticsearch中过滤聚合 我正在考虑这样的事情 获取 SOME object X gt 100 的所有对象 提前致谢 编辑 样本数据 我有以下文档结构 docKey 1 value 2 d
  • 空 while 循环有什么影响?

    我知道这可能是一个有点 愚蠢 的问题 但有时 我只想循环直到条件为假 但我不喜欢让循环保持为空 所以代替 Visible true while IsRunning Visible false 我通常prefer while IsRunnin
  • 非阻塞方法中的饥饿

    一段时间以来 我一直在阅读有关非阻塞方法的内容 这是一段所谓的无锁计数器的代码 public class CasCounter private SimulatedCAS value public int getValue return va
  • C# 写入文件的性能

    我的情况概述 我的任务是从文件中读取字符串 并将它们重新格式化为更有用的格式 重新格式化输入后 我必须将其写入输出文件 这是必须完成的操作的示例 文件行示例 ANO 2010 CPF 17834368168 YEARS 2010 2009
  • iOS 自定义单元格设计放在哪里? awakeFromNib 还是 cellForRowAtIndexPath?

    所以 基本上我用笔尖做了一个定制单元 希望我应用一些定制设计 比如颜色和阴影 我发现了两种应用样式的方法 awakeFromNib override func awakeFromNib super awakeFromNib Containe
  • 需要仅返回 Elasticsearch 中具有完整父主体的匹配嵌套对象

    我在我的项目中使用 Elastic search 1 7 版本 我有一个名为colleges在该索引下有一个嵌套索引名称courses像这样 name College Name university University Name city
  • 比较运算符性能 <= 与 !=

    让我们首先声明代码可读性胜过微优化 我们应该将其留给编译器 这只是一个奇怪的案例 具体细节似乎与一般建议相比很有趣 因此 我在搞素数生成器函数 并提出了一种奇怪的行为 其中 人们建议效率最高 实际上效率最低 而 C private stat
  • 有没有可以在 HTML 文档之间进行比较的 ruby​​ gem?

    事实证明 对两个不同的 html 文档进行比较是一个完全不同的问题 而不仅仅是对纯文本进行比较 例如 如果我在以下之间进行简单的 LCS 差异 Google and Google diff 结果不是 but a gt github com
  • 合并 2 个大型 CSS 文件的有效方法

    我正在寻找一个可以合并 2 个大型 CSS 文件的工具 到目前为止我尝试过的所有方法 例如CSSMerge 都没有成功 其中一些只是随机删除属性 其他人则因 webkit 和 moz 等非标准属性而窒息 并给我错误 我还需要保留每条规则大小
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的

随机推荐