3 回答

TA贡献1777条经验 获得超3个赞
以下是如何开始使用 go 库。
实例化 a 后client,您可以执行以下操作:
maxDateAgg := NewMaxAggregation().Field("dateTime")
builder := client.Search().Index("index-name").Pretty(true)
builder = builder.Aggregation("max_date", maxDateAgg)
之后,调用.Do(ctx).builder

TA贡献1812条经验 获得超5个赞
我设法使它与答案之一和我已经拥有的一些东西一起工作:
maxDateAgg := elastic.NewMaxAggregation().Field("dateTime")
builder := esClient.Search().Index("index-name").Pretty(true)
builder = builder.Aggregation("max_datetime", maxDateAgg) builder = builder.Size(1).Sort("dateTime",false)
searchResult, err := builder.Do(ctx)
这将返回具有最大日期时间的文档中的所有字段,因此我创建了一个结构,并将 search.hit.hit 源 json.unmarshall 放入结构中,因此我只能从结构中获取日期时间字段。

TA贡献1863条经验 获得超2个赞
对于那些想知道如何获取日期的人
ctx := context.Background()
termQuery := elastic.NewMatchAllQuery()
agg := elastic.NewMaxAggregation().Field("le_nested.last_updated")
sr, err := elastic.Client.Search("your_index").Query(termQuery).Aggregation("max_date", agg).Do(ctx)
if err != nil {
m := fmt.Sprint("Error getting getting last updated data", err)
fmt.Println(m)
}
max, found := sr.Aggregations.MaxBucket("max_date")
if !found {
m := fmt.Sprint("max_date aggregation not found", err)
fmt.Println(m)
}
fmt.Println("MAX DATE", max.ValueAsString)
tm := int64(*max.Value) / 1000
mu := time.Unix(tm, 0)
fmt.Println("DATE", mu)
ES 以毫秒为单位返回日期,无需解组任何内容
- 3 回答
- 0 关注
- 2417 浏览
添加回答
举报