当前位置: 首页 > 面试题库 >

如何快速为ElasticSearch重新编制索引?

长孙鸿
2023-03-14
问题内容

我有一个大约2亿个文档的ElasticSearch索引,总索引大小为90Gb。

我更改了映射,所以我希望ElasticSearch重新索引所有文档。

我编写了一个脚本,该脚本创建一个新索引(具有新映射),然后遍历旧索引中的所有文档,然后将其放入新索引中。

它似乎可以工作,但是问题是它的运行速度非常慢。它从两天前以300个文档/分钟开始,现在的速度是150个文档/分钟。

该脚本在elasticsearch计算机所在的同一网络中的计算机上运行。

以这种速度,重新索引将需要一个月才能完成。

有人知道一些更快的技术来为elasticsearch索引重新编制索引吗?


问题答案:

在Google网上论坛中回答:

选项A: 使用批量索引操作。

选项B:
使用在ES机器内部运行的重新索引插件: https
//github.com/karussell/elasticsearch-
reindex


 类似资料:
  • 问题内容: 就像标题所说的… 我阅读了这篇文章(https://www.elastic.co/blog/changing-mapping-with-zero- downtime ),这个概念很棒,但是我很难找到有关如何通过JAVA API进行操作的不错的参考。 我找到了这个插件:https : //github.com/karussell/elasticsearch- reindex,但似乎对我尝

  • 问题内容: 我试图了解如何在Elasticsearch上优化索引。让我澄清我的需求; 我现在有两个指标。可以这样说和(两个索引可以看到大致相同的大小) 我有6台专用于Elasticsearch的机器(我们可以说完全相同的硬件) 我的elasticsearch用法中最重要的部分是写作,因为我实时进行大量写作。 所以我的问题是,如何使用这6台机器优化写入操作? 我是否应该将机器分为两部分,例如3台机器

  • 问题内容: 我问是因为在解决问题时我们的搜索处于不断变化的状态,但是每次我们更改索引(更改标记器或过滤器,或分片/副本的数量)时,我们都必须删除整个索引,将我们所有的Rails模型重新索引回Elasticsearch … …这意味着我们必须考虑停机时间来重新索引所有记录。 有一种我不知道的聪明方法吗? 问题答案: 我认为@karmi正确。但是,让我解释一下更简单。我偶尔需要使用一些新属性或分析设置

  • 问题内容: 我已经设置了索引。我不时向其推送新文档。 我只想在所有文档都编入索引后回答我的查询。我怎样才能做到这一点? 问题答案: 在ES 2中,您可以在为新文档建立索引后立即调用API,但是不建议在生产环境中使用它,因为这可能会降低群集的性能。 在ES5中,您将能够使用发送索引查询,并且ES仅在准备好搜索新文档时才响应。

  • 问题内容: 我有一个简单的MySQL表,并且主索引(id)并未一一编号(1、31、35、100等)。我希望它们被编号为(1、2、3、4)。请告诉我该怎么做。我还要指出,我知道该操作可能造成的后果,但我只是想整理一下桌子。 问题答案: 我同意其他方法也可以,但是我只是给出了一个不同的想法。这将不需要任何临时表创建要求:

  • 问题内容: 我有一个社交模型,用户可以在其中喜欢照片。 我的照片文档如下所示: 我的问题是,只要照片得到其他用户的喜欢,我就必须更新我的文档。此更新是否使Elasticsearch自动为其重新编制索引(知道“ likes”属性未在我的映射中编制索引)还是仅在我的索引属性已更改时才完成? 我关心的是这里的表现。 问题答案: elasticsearch中的文档是不可变的。更新文档始终是重新索引,并且包