gpt4 book ai didi

elasticsearch - 在ElasticSearch中查询DateTime条目的最佳设置?

转载 作者:行者123 更新时间:2023-12-02 22:52:11 27 4
gpt4 key购买 nike

我正在构建一个应用程序,该应用程序定期查询系统资源使用情况并将数据记录到ElasticSearch中。我最终希望将此信息显示为给定时间段的图表。请注意,通常用户会希望查看设定时间段内的统计信息-

  • 当前日期
  • 当前月份
  • 当前年份

  • 因此,我一直在尝试考虑将数据存储到ElasticSearch中以最优化搜索速度的最有效方法。显然,每个条目都有一个单独的DateTime字段(低至毫秒),但是如果我只能对特定索引执行查询,则搜索会更快。

    我的计划是将索引设置为当天(即 2014_04_09)。根据 this,您可以将多个索引链接到一个别名。在这种情况下,我将在上面为 2014_042014设置一个别名。这样做的想法是,我可以对 2014_04索引执行搜索,这将自动搜索4月中所有单独的索引天。这项工作是否可行?如果可以,是否最佳?

    其他人在ElasticSearch中使用DateTime查询是否也有类似的经历?谢谢!

    最佳答案

    正如您在评论中所说的那样,将它们组合到一个索引中会更有意义,因为它是相同的信息,并且会使将来的查询变得更加简单。

    通过每天,每月和每年创建索引,您将不得不对文档进行三倍索引,或者想出复杂的逻辑来控制别名,我认为在创建大量索引时不值得(每天一次)。如Nate所指出的,如果您这样做是为了进行日志记录,那么logstash显然是一个更好的答案。在这种情况下,可能值得一提的是,当它们不提供任何值时,您可以turn off indices ("close")进行操作,因此,它们在占用磁盘空间之外没有任何负面影响。

    脱离日志记录的主题,创建N索引将固有地导致多个分片(至少是N)。当一个就足够时,添加many shards will unnecessarily slow things down也足够。要使用别名进行工作,将在添加其他索引时造成频繁的维护。

    通过将它们组合成一个索引,您可以轻松地按需执行高性能的分析,并且可以在需要时更轻松地在多个节点上扩展Elasticsearch。有用的是,您几乎肯定会在将来发现更复杂的聚合,并且您可能会从更简单的索引编制中受益。

    您将收到适用于您的过滤器的更新,即使这些更新已被缓存也是如此。通过生成一个简单的过滤器,运行它,然后在其预期结果集中添加其他内容,可以很容易地证明这一点。

    关于elasticsearch - 在ElasticSearch中查询DateTime条目的最佳设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22971868/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com