gpt4 book ai didi

elasticsearch - 将聚合结果插入索引

转载 作者:行者123 更新时间:2023-11-29 02:46:09 28 4
gpt4 key购买 nike

目标是仅使用相关文档组中的最新文档构建 Elasticsearch 索引,以跟踪一些监控计数器和状态的当前状态。

我设计了一个简单的Elasticsearch 聚合查询:

{
"size": 0,
"aggs": {
"group_by_monitor": {
"terms": {
"field": "monitor_name"
},
"aggs": {
"get_latest": {
"top_hits": {
"size": 1,
"sort": [
{
"timestamp": {
"order": "desc"
}
}
]
}
}
}
}
}
}

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

以下是我完成工作所必须的不同想法:

  1. 直接使用聚合查询将结果插入索引,但似乎不可能:Is it possible to put the results of an ElasticSearch aggregation back into the index?
  2. 使用Logstash Elasticsearch input plugin执行聚合查询和 Elasticsearch output plugin插入索引,但似乎输入插件只查看 hits 字段并且无法处理聚合结果:Aggregation Query possible input ES plugin !
  3. 使用Logstash http_poller plugin获取 JSON 文档,但它似乎不允许为 HTTP 请求指定主体!
  4. 使用Logstash exec plugin执行 cURL 命令以获取 JSON,但这似乎很麻烦,也是我最后的选择。
  5. 使用NEST API构建一个基本的应用程序来进行轮询、提取结果、清理它们并将生成的文档注入(inject)目标索引,但我想避免添加新工具进行维护。

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

最佳答案

如下编辑logstash.conf文件

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]}"
}
}

关于elasticsearch - 将聚合结果插入索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36505459/

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