登录
首页 >  Golang >  Go问答

在elasticsearch中查询最大日期

来源:stackoverflow

时间:2024-04-07 18:33:37 196浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《在elasticsearch中查询最大日期》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我需要从 elasticsearch 索引文档的日期时间字段中获取最新日期。基本上,我直接在 elasticsearch 中执行此查询,它返回了我所需要的内容:

GET localhost:9200/index-name/_search

    {
        "aggs" : {
           "max_date": {"max": {"field": "dateTime"}}
        }
    }

我需要在 go 中执行相同的查询。我看到 olivere 库中有一个 maxagregation,但我不确定如何使用它。有人知道怎么做吗?


解决方案


这是 to get started 使用 go 库的方法。

实例化 client 后,您可以执行以下操作:

maxdateagg := newmaxaggregation().field("datetime")

builder := client.search().index("index-name").pretty(true)
builder = builder.aggregation("max_date", maxdateagg)

之后,在 builder 上调用 .do(ctx)

我设法使其与答案之一和我已经拥有的一些东西一起工作:

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 放入结构中,因此我只能从结构中获取日期时间字段。

今天关于《在elasticsearch中查询最大日期》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>