【发布时间】:2017-08-30 23:43:27
【问题描述】:
我正在使用 Olivere 的 v.5 elasticsearch 库 - https://godoc.org/github.com/olivere/elastic
尝试做与这篇使用 v.2 库的帖子类似的事情 - How to search in elasticsearch with Go filtering results by time frames
但 'NewRangeFilter' 和 'NewFilteredQuery' 在 v.5 中不可用。 v.5 (https://godoc.org/github.com/olivere/elastic#Aggregations.DateRange) 中有一个“DateRange”API,我可以从聚合中调用它,但它需要一个字符串,所以我不知道我应该传入什么。
这是我迄今为止尝试构建聚合的方法。之后,我不确定将什么传递给 DateRange 函数。我有一个名为“tmpindex”的索引和一个名为“user”的类型,每个文档都有一个“timestamp”属性,它是一个整数。
timeline := elasticClient.NewTermsAggregation().Field("timestamp").Size(10).OrderByCountDesc()
searchResult, err := elasticClient.Search().
Index("tmpindex"). // search in index "tmpindex"
Aggregation("timeline", timeline).
From(0).Size(10). // take documents 0-9
Pretty(true). // pretty print request and response JSON
Do(context.Background()) // execute
if err != nil {
return err
}
【问题讨论】:
标签: elasticsearch go elasticsearch-5