首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将聚合结果插入索引中

将聚合结果插入索引中
EN

Stack Overflow用户
提问于 2016-04-08 17:10:47
回答 1查看 5.7K关注 0票数 10

目标是构建一个Elasticsearch索引,其中仅包含相关文档组中的最新文档,以跟踪某些监视计数器和状态的当前状态。

我已经构建了一个简单的Elasticsearch聚合查询

代码语言:javascript
运行
复制
{
  "size": 0,
  "aggs": {
    "group_by_monitor": {
      "terms": {
        "field": "monitor_name"
      },
      "aggs": {
        "get_latest": {
          "top_hits": {
            "size": 1,
            "sort": [
              {
                "timestamp": {
                  "order": "desc"
                }
              }
            ]
          }
        }
      }
    }
  }
}

它将相关文档分组到桶中,并为每个桶选择最新的文档。

以下是我完成这项工作的不同想法:

  1. 直接使用聚合查询将结果推入索引,但似乎不可能:是否有可能将ElasticSearch聚合的结果返回到索引中?
  2. 使用Logstash Elasticsearch输入插件执行聚合查询,使用Elasticsearch输出插件推进索引,但似乎输入插件只查看hits字段,无法处理聚合结果:聚合查询可能的输入ES插件
  3. 使用Logstash poller插件获取JSON文档,但它似乎不允许为HTTP指定一个正文!
  4. 使用Logstash exec插件执行cURL命令以获得JSON,但这似乎非常麻烦,也是我最后的选择。
  5. 使用巢API构建一个基本应用程序,该应用程序将执行轮询、提取结果、清理结果并将结果文档注入目标索引,但我希望避免添加要维护的新工具。

是否有一种相当复杂的方法来完成这一任务?

EN

回答 1

Stack Overflow用户

发布于 2017-02-06 10:45:22

编辑logstash.conf文件如下

代码语言:javascript
运行
复制
input {
  elasticsearch {
    hosts => "localhost" 
    index => "source_index_name" 
    type =>"index_type" 
    query => '{Query}' 
    size => 500 
    scroll => "5m" 
    docinfo => true
  }
}

output { 
  elasticsearch { 
    index => "target_index_name" 
    document_id => "%{[@metadata][_id]}"
  }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36505459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档