GO操作Elasticsearch,取最大值,最小值,平均值
```go
package main
import (
"context"
"fmt"
"github.com/olivere/elastic/v7"
)
var client *elastic.Client
var host = "http://192.168.204.111:9200"
func init() {
var err error
client, err = elastic.NewClient(elastic.SetSniff(false), elastic.SetURL(host))
if err != nil {
panic(err)
}
_,_,err = client.Ping(host).Do(context.Background())
if err != nil {
panic(err)
}
esversion,err := client.ElasticsearchVersion(host)
if err != nil {
panic(err)
}
fmt.Printf("Elasticsearch version %s\n", esversion)
}
func GetMax() {
maxa := elastic.NewMaxAggregation().Field("ruKouShiJian")
res, err := client.Search("cheliangguiji").Size(0).Aggregation("max",maxa).Do(context.Background())
if err != nil{
fmt.Println(err)
}else{
v,a := res.Aggregations.ValueCount("max")
if a{
maxValue := string(v.Aggregations["value_as_string"])
fmt.Println("maxvalue=",maxValue)
}
}
}
func GetMin() {
mina := elastic.NewMinAggregation().Field("ruKouShiJian")
res, err := client.Search("cheliangguiji").Size(0).Aggregation("min",mina).Do(context.Background())
if err != nil{
fmt.Println(err)
}else{
v,a := res.Aggregations.ValueCount("min")
if a{
maxValue := string(v.Aggregations["value_as_string"])
fmt.Println("minvalue=",maxValue)
}
}
}
func GetAvg() {
avga := elastic.NewAvgAggregation().Field("jiFeiJinE")
res, err := client.Search("cheliangguiji").Size(0).Aggregation("avg",avga).Do(context.Background())
if err != nil{
fmt.Println(err)
}else{
v,a := res.Aggregations.ValueCount("avg")
if a{
avgValue := string(v.Aggregations["value"])
fmt.Println("minvalue=",avgValue)
}
}
}
func main() {
GetMax()
GetMin()
GetAvg()
fmt.Println("处理完成。")
}