
php小编小新今天为大家带来了一篇关于使用Golang编写简单的ES avg聚合的文章。ES(Elasticsearch)是一个开源的分布式搜索和分析引擎,它提供了丰富的聚合功能,其中包括avg(平均值)聚合。本文将介绍如何使用Golang编写一个简单的ES avg聚合程序,帮助大家更好地理解和应用ES的聚合功能。让我们一起来了解一下吧!
我一直在尝试在 go 中编写一个简单的 es avg 聚合,但即使这听起来我不知道如何解析结果:
ctx, cancel := context.WithTimeout(context.Background(), defaultTimeout)
defer cancel()
query := elastic.NewAvgAggregation().Field("Assignment.HomeworkSize")
ss := elastic.NewSearchSource().Query(query)
searchResult, err := c.ES.Search().Index(StudentIndex).SearchSource(ss).Do(ctx)
if err != nil {
return 0, err
}
// Parse Results
aggs := searchResult.Aggregations但我不确定如何解析 searchresult 来获取此聚合的结果。基本上我想解析代表学生的大量文档并获取作业的平均大小。
我通常使用 http 来访问弹性。因此,我将结果作为地图返回,并且可以使用调试器检查您的结果是什么并从那里开始工作。
立即学习“go语言免费学习笔记(深入)”;
UsualToolCMS 是一款企业级的网站内容管理系统,由PHP+MYSQL编写,使用模板分离技术,支持创建多种类型的站点。 拥有UsualToolCMS便能快速同时在手机端与电脑端建立网站,通过UsualToolCMS能快速接入公众号,快速生成一个微信小程序及WEBAPP,真正的多站合一。互联网技术变得更简单。 升级说明: UsualToolCMS7.0.0604增加文字/图片自动水印系
77
var resp map[string]interface{}
err := c.handlerequest(http.methodget, tag, req, &resp)其中 tag 是您的索引,req - 您对弹性执行的请求,response 是响应
内部处理程序看起来像这样:
req, err := http.newrequest(method, c.endpoint+tag, bytes.newreader(jsonbody))
其中 jsonbody 是您传递给处理程序的请求 其他一切都是用 go 发送 http 的常用方式
还要记住的一件事是在结果映射中处理类型(类型断言),如下所示:
for index, hit := range resp["hits"].(map[string]interface{})["hits"].([]interface{}) {
Source := hit.(map[string]interface{})["_source"].(map[string]interface{})
items[index] = someType{
SomeField: Source["app_name"].(string),
}
}以上就是用golang编写简单的ES avg聚合的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号