Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch Elasticsearch索引按日期搜索性能-是否拆分_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch Elasticsearch索引按日期搜索性能-是否拆分,elasticsearch,elasticsearch" /> elasticsearch Elasticsearch索引按日期搜索性能-是否拆分,elasticsearch,elasticsearch" />

elasticsearch Elasticsearch索引按日期搜索性能-是否拆分

elasticsearch Elasticsearch索引按日期搜索性能-是否拆分,elasticsearch,elasticsearch,我目前正在玩Elasticsearch(ES)。我们正在接收传感器数据,三年来,我们在一个索引中有大约100000000个文档,使索引的大小约为50GB。索引性能并不那么重要,因为每个传感器平均每15分钟才有一次新数据到达,因此我想重点关注搜索和聚合性能。我们正在运行一个前端,基本上显示一个仪表盘,显示上周与一年前的平均值等 我在AWS上使用ES,在一台机器上的性能非常慢之后,我构建了一个包含3个数据节点的集群(每个节点有2个内核,8 GB内存),并为索引提供了3个主碎片和一个副本。向数据投放计

我目前正在玩Elasticsearch(ES)。我们正在接收传感器数据,三年来,我们在一个索引中有大约100000000个文档,使索引的大小约为50GB。索引性能并不那么重要,因为每个传感器平均每15分钟才有一次新数据到达,因此我想重点关注搜索和聚合性能。我们正在运行一个前端,基本上显示一个仪表盘,显示上周与一年前的平均值等

我在AWS上使用ES,在一台机器上的性能非常慢之后,我构建了一个包含3个数据节点的集群(每个节点有2个内核,8 GB内存),并为索引提供了3个主碎片和一个副本。向数据投放计算能力肯定会改善这种情况,而更多的计算能力会帮助更多,但我的问题是:

将指数拆分(例如按月拆分)是否会提高绩效?或者更具体一些:如果我适当地调整查询,查询(特别是按日期)是否会更快地缩小索引,或者ES是否已经“知道”在碎片中的何处查找特定日期?


(我知道使用较小索引的其他好处,例如可以滚动并只保留特定的时间间隔等)。

1/Elasticsearch只知道如果索引按日期字段排序,则在索引中查找特定日期的位置。你可以查一下电话号码

在您的用例中,它可以显著提高搜索性能。而且,由于所有数据都将添加到索引日期排序后的“索引末尾”,因此您不应该看到太多的索引开销

2/如果没有索引排序,较小的时间限制索引将更好地工作(即使您以所有索引为目标),因为它通常允许重写或您的范围查询到match_all/match_none内部查询

有关此行为的更多信息,请阅读以下博文:


1/Elasticsearch只知道在索引中按日期字段排序时在何处查找特定日期。你可以查一下电话号码

在您的用例中,它可以显著提高搜索性能。而且,由于所有数据都将添加到索引日期排序后的“索引末尾”,因此您不应该看到太多的索引开销

2/如果没有索引排序,较小的时间限制索引将更好地工作(即使您以所有索引为目标),因为它通常允许重写或您的范围查询到match_all/match_none内部查询

有关此行为的更多信息,请阅读以下博文: