gpt4 book ai didi

elasticsearch - 从 elasticsearch 查询返回所有文档

转载 作者:IT王子 更新时间:2023-10-29 02:03:31 32 4
gpt4 key购买 nike

我的问题特定于我正在使用的“gopkg.in/olivere/elastic.v2”包。

我正在尝试返回与我的查询匹配的所有文档:

termQuery := elastic.NewTermQuery("item_id", item_id)
searchResult, err := es.client.Search().
Index(index).
Type(SegmentsType). // search segments type
Query(termQuery). // specify the query
Sort("time", true). // sort by "user" field, ascending
From(0).Size(9).
Pretty(true). // pretty print request and response JSON
Do() // execute
if err != nil {
// Handle error
return timeline, err
}

问题是,如果我将大小增加到较大的值,则会出现内部服务器错误。如果我删除以下内容的行:

From(0).Size(9).

然后使用默认值(10 个文档)。我如何归还所有文件?

最佳答案

使用滚动条检索所有结果只是有点不同,为了简洁起见,我没有包含您可能需要的很多错误处理。

基本上,您只需将代码从 Search 稍微更改为 Scroller,然后使用 Scroller 循环调用 Do 和处理结果页面。

termQuery := elastic.NewTermQuery("item_id", item_id)
scroller := es.client.Scroller().
Index(index).
Type(SegmentsType).
Query(termQuery).
Sort("time", true).
Size(1)

docs := 0
for {
res, err := scroller.Do(context.TODO())
if err == io.EOF {
// No remaining documents matching the search so break out of the 'forever' loop
break
}
for _, hit := range res.Hits.Hits {
// JSON parse or do whatever with each document retrieved from your index
item := make(map[string]interface{})
err := json.Unmarshal(*hit.Source, &item)
docs++
}
}

关于elasticsearch - 从 elasticsearch 查询返回所有文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42426733/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com