Golang 中的 Elasticsearch 时间点请求 API
在Golang中,Elasticsearch是一个非常流行的分布式搜索和分析引擎。它具有强大的功能和灵活的查询语言,可以满足各种数据检索的需求。其中,时间点请求API是Elasticsearch的一个重要特性,它允许我们按照时间范围进行数据检索和聚合。在本文中,php小编新一将为大家详细介绍Golang中的Elasticsearch时间点请求API的使用方法和注意事项,帮助读者更好地理解和应用这一功能。
问题内容
我正在尝试使用官方 go-elasticsearch 库在 golang 中使用时间点 api。我似乎找不到任何解释如何使用它的文档。
我已经能够创建 OpenPointInTime
对象并检索 PIT id。我不知道如何处理它或将其放置在 elasticsearch.Client.Search
函数中的位置。我也找不到例子。
谁能给出一个使用官方库的基本示例。
解决方法
在浏览了elasticsearch库的github存储库上的已关闭问题后,我发现了这个问题线程:https://www.php.cn/link/4bdb6179647296e518bd72e62d3bf5c1
根据这个线程,我需要从 openpointintime
响应中获取 pit id 并将其添加到正文中。
这对我有用:
var query_buffer bytes.Buffer
body := `
{
"query": {
"term": {
"_id": "AkUN7YUB2JzVdyKtJ8bD"
}
},
"pit": {
"id": "your pit id here",
"keep_alive": "3m"
}
}
`
es, _ := elasticsearch.NewDefaultClient()
json.NewDecoder(&query_buffer).Decode(&body)
res, err := es.Search(
es.Search.WithAllowPartialSearchResults(true),
es.Search.WithBody(&query_buffer),
)
以上就是Golang 中的 Elasticsearch 时间点请求 API的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341