0

我有数百万个对象的许多 Elasticsearch 索引。只有其中一个包含大约 500 万个对象时才会出现问题。

当我尝试重建 Elasticsearch 索引(我使用的是 django-elasticsearch-dsl)时,会发生以下情况:

  1. 索引中的文档计数保持为 0。
  2. 我的 PostgreSQL 数据库中的磁盘使用量正在迅速增长。即,Temp 文件夹正在增长。
  3. 如果我什么都不做,当 100% 的磁盘被使用时重建停止。
  4. 如果我手动终止索引重建命令,磁盘使用量仍会继续增长,直到我重新启动 PostgreSQL
  5. ps aux显示 DECLARE CURSOR 语句始终存在(即未完成)直到崩溃。
  6. 从长远来看,Elasticsearch 索引是存在的,但只有 0 个文档。

这个索引以前就存在过,我对它没有任何问题。我认为我没有更改任何设置,因此行为更加奇怪。我在磁盘空间使用方面没有问题,并且在重建 20 倍大的索引时也没有遇到任何问题。

问题索引的设置如下:

  • number_of_shards: 1
  • number_of_replicas: 0
  • “映射”:{"properties":{"keyword":{"type":"text"}}}

所以,我只有一个名为“关键字”的字段,我正在使用标准分析器,并且在构建索引时没有对“关键字”内容做任何额外的工作。

我试过重命名索引;阻止从 Elasticsearch 到 PosgreSQL 的所有信号;在 Elasticsearch 上禁用 auto_refresh;删除、构建和填充,而不仅仅是重建;重新启动整个网站;等等

什么可能导致这种行为,我该如何处理?

4

0 回答 0