elasticsearch 从具有匹配模式的每个索引中获取最后一个索引文档

lawou6xi  于 2023-03-07  发布在  ElasticSearch
关注(0)|答案(1)|浏览(210)

我有多个索引

test-node1
test-node2
test-node3
test-node4
test-node5
test-node6

现在我想在一个查询中从每个索引(模式是test-*)中获取最新的索引文档。我该怎么做呢?
在这种情况下,结果将包含总共6个文档。

9avjhtql

9avjhtql1#

假设您有一个名为“timestamp”的字段,其中存储了索引时间,您可以运行以下命令

GET test-*/_search
{
  "size": 0,
  "aggs": {
    "by_index": {
      "terms": {
        "field": "_index"
      }, 
      "aggs": {
        "last_index": {
          "top_hits": {
            "size": 1,
            "sort": [{
              "timestamp": {"order": "desc"}
            }]
          }
        }
      }
    }
  }
}

相关问题