【问题标题】:Get all rollover indexes in ES获取 ES 中的所有翻转索引
【发布时间】:2018-11-15 00:47:08
【问题描述】:

我有如下所示的弹性搜索翻转索引

/logs-dev-myapp-000001
/logs-dev-myapp-000002
/logs-dev-myapp-000003
/logs-dev-myapp-000004
/logs-dev-myapp-000005
:
:
/logs-dev-myapp-000030

谁能告诉我如何从 ES GET 查询中找到所有翻转索引。还有什么方法可以在 Elastic Search 中找到最旧和最新的索引翻转索引

我使用的是 ElasticSearch-6.4 版本

【问题讨论】:

    标签: elasticsearch rollover elasticsearch-6


    【解决方案1】:

    索引列表

    要知道使用前缀的索引列表,你可以使用下面的 URL

    http://<your_host_name>:<your_port_num>/_cat/indices/logs-dev-myapp-*?v&s=i

    或使用下面的 GET 查询

    GET /_cat/indices/logs-dev-myapp-*?v&s=i
    

    最高和最低(基于文档数量)

    现在对于最高和最低,我想当您的意思是您询问文档计数时,您可以使用以下聚合查询。

    请注意,下面的查询也会显示索引列表。

    POST logs-dev-myapp-*/_search
    {  
       "size":0,
       "aggs":{  
          "indices":{  
             "terms":{  
                "field":"_index",
                "size":100
             }
          },
          "max":{  
             "max_bucket":{  
                "buckets_path":"indices._count"
             }
          },
          "min":{  
             "min_bucket":{  
                "buckets_path":"indices._count"
             }
          }
       },
       "sort":[  
          {  
             "_index":{  
                "order":"asc"
             }
          }
       ],
       "script_fields":{  
          "index_name":{  
             "script":{  
                "lang":"painless",
                "source":"doc['_index']"
             }
          }
       }
    }
    

    有用的链接

    请参阅此 LINK 以获取字段 _index 的更多信息。

    我已经使用Max BucketMin Bucket 管道聚合与Terms Aggregation

    如果有帮助请告诉我!

    【讨论】:

    • 感谢您的回复,我是 ElasticSearch 的新手。如果可能的话,你能解释一下为什么给我"size":0,使用script_fieldssize":100indices 中的原因,以及如何计算最小值和最大值是否来自索引等
    • "size": 0 这样您就只能看到聚合结果。否则它也会向您显示该索引的文档。 "size": 100 以便您的聚合结果显示所有索引(看到查询中提到您有 30 个)。最小值/最大值不是从size 计算的,而是从document count 计算的。看到它的日志数据和相同格式的文档将在所有索引中,考虑到document counts 就足够了。
    • 还纠正了我关于最高和最低翻转指数的问题。实际上我的意思是最低的是最旧的索引,最高的是最新的索引
    • script_fields 如果您将 "size":0 更改为其他内容,则会出现。在这种情况下,您的查询结果(不是聚合结果)只会显示索引名称,而不是返回包含所有字段的整个文档。它旨在返回搜索查询响应中的特定字段(不是聚合部分)。您可以将size 更改为1,使用script fields 尝试一次,然后通过删除脚本字段再次尝试,您将能够看到不同之处。您可以将其删除以用于您的用例。对不起,我不必要地提到了它。
    • @AlexMan 当然,我会看看我能做什么。同时,您能否更新问题,指定您正在寻找最旧和最新的索引。如果不是我,其他人可以快速提供帮助。
    猜你喜欢
    • 1970-01-01
    • 2012-05-23
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 2014-08-16
    • 2017-04-24
    • 2014-06-29
    相关资源
    最近更新 更多