弹性搜索汇总作业

时间:2020-11-05 06:41:40

标签: elasticsearch kibana

我可以在汇总之前过滤弹性搜索中的文档吗?还是可以在汇总作业中定义过滤查询,如果可以,如何?

1 个答案:

答案 0 :(得分:1)

在将数据汇总到新的汇总索引之前,无法过滤数据。但是,您可以先定义一个filtered alias,然后再对该别名进行汇总来实现所需的功能。

说,您要汇总索引test,但仅针对客户1、2和3。您可以创建以下过滤的别名:

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "test",
        "alias": "filtered-test",
        "filter": { "terms": { "customer.id": [1, 2, 3] } }
      }
    }
  ]
}

然后您可以使用filtered-test别名而不是test索引进行汇总,这样只会汇总来自客户1、2和3的数据

PUT _rollup/job/sensor
{
  "index_pattern": "filtered-test",
  "rollup_index": "customer_rollup",
  ...
}

PS:值得注意的是you're not alone,但是Elastic员工出于各种原因特别决定不允许对汇总进行过滤(您可以在我链接的问题中阅读更多内容)。由于发生了big refactor of the roll up feature,该问题已重新开放。敬请期待...