有没有办法将弹性搜索“日级指数”汇总到单个“月级指数”?

时间:2016-08-10 22:30:03

标签: elasticsearch indexing lucene

我有一个弹性搜索,它的容量是85%,它只能在接下来的几天内承受,因为我一直在索引。

我现在不想删除任何索引。

但是有没有办法将全天级别索引合并到单个月级别索引,例如我每天将数据索引到ES,我可以对旧索引进行更改,以便它可以代表每个月。

有技术吗?如果是这样,它会为我提供额外的空间吗?

您的意见真的很感激

1 个答案:

答案 0 :(得分:1)

您绝对可以将所有旧的每日索引移至每月一次,然后删除每日索引,并使用reindex API仅保留每月索引。

POST /_reindex
{
  "source": {
    "index": ["2016-07-01", "2016-07-02", ..., "2016-07-31"]
  },
  "dest": {
    "index": "2016-07"
  }
}

通过这样做,假设你有一个跨越所有日常索引的别名,你可以稍微改善一下查询时间,因为不是查询30多个索引的所有分片,而是'我只想查询单个索引的分片。如果您为新的月度索引选择正确数量的分片,这绝对是一件好事。

在重新编制索引之前尝试的另一件事是尝试{/ 3}}在您的每日索引上尝试删除已删除的文档(?only_expunge_deletes=true)并查看是否在您的系统上留出了一些空间。

在任何情况下,将索引合并在一起+删除已删除的文档会为您带来一些空间但不会期望能力大幅增加。您可能需要在某个时候增加硬盘的大小。