elasticsearch 如何实现Elasticsearch碎片大小的自动控制?,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch 如何实现Elasticsearch碎片大小的自动控制?,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch 如何实现Elasticsearch碎片大小的自动控制?

elasticsearch 如何实现Elasticsearch碎片大小的自动控制?,elasticsearch,lucene,elasticsearch,Lucene,我有一个输入数据流(日志)存储在Elasticsearch中。我需要实现一个功能,不断检查碎片的大小,当它达到某一点(例如30GB)时,它将开始在新的碎片中存储数据 我是Elasticsearch的新手,我找不到任何关于如何做到这一点的信息。在这种情况下,是否需要为每个碎片创建新索引 我将感谢任何信息或链接。我正在使用Elasticsearch 6.0。您想使用,它应该适合您的需要 基本上是这样的。您需要有一个指向单个索引的别名,下面我们将使用别名创建一个索引myindex-000001 PUT

我有一个输入数据流(日志)存储在Elasticsearch中。我需要实现一个功能,不断检查碎片的大小,当它达到某一点(例如30GB)时,它将开始在新的碎片中存储数据

我是Elasticsearch的新手,我找不到任何关于如何做到这一点的信息。在这种情况下,是否需要为每个碎片创建新索引

我将感谢任何信息或链接。我正在使用Elasticsearch 6.0。

您想使用,它应该适合您的需要

基本上是这样的。您需要有一个指向单个索引的别名,下面我们将使用别名创建一个索引
myindex-000001

PUT /myindex-000001 
{
  "aliases": {
    "myalias": {}
  }
}
然后需要创建一个滚动条件,如下所示:

POST /myalias/_rollover 
{
  "conditions": {
    "max_size":  "30gb"
  }
}

每当
myalias
指向的索引大小达到30gb时,将创建名为
myindex-000002
的新索引,别名将切换到该索引。因此,就您的客户端应用程序而言,您始终可以将数据发送到
myalias
,其余部分由ES完成。

好,这意味着每次都会创建一个新索引?有没有办法将条件应用于碎片而不是索引?这将允许在索引中存储更多的碎片。不,您不能在碎片上设置条件,因为碎片可以在合并操作过程中增大大小,而不必包含更多文档,所以这是没有意义的。