Go ElasticSearch 游标查询Scroll

scroll 查询 可以用来对 Elasticsearch 有效地执行大批量的文档查询。游标查询会取某个时间点的快照数据。 查询初始化之后索引上的任何变化会被它忽略。 它通过保存旧的数据文件来实现这个特性,结果就像保留初始化时的索引视图一样。

Go olivere elastic基础:golang中使用elasticsearch之olivere elastic汇总

环境

Go mod包:

github.com/olivere/elastic/v7

Elasticsearch版本:v7

游标查询
do, err := client.Scroll().		// 游标滚动查询
		Index(IndexName).
		Query(condition.Query()).
		Scroll("1m").			// 保持游标查询窗口一分钟
		Size(10).
		Do(context.Background())
if err !=nil {
		panic(err)
}
scrollId := do.ScrollId
fmt.Println(scrollId)			// 生成当次的游标ID
fmt.Println(do.Hits.Hits)		// 第一部分数据
滚动游标数据
for {
	result, _ := dao.es.Scroll("1m").
    	ScrollId(scrollId).				//通过游标id查询
    	Do(context.Background())
	if len(result.Hits.Hits) <= 0 { 	// 跳出循环滚动
		break
	}
	fmt.Println(result.Hits.Hits)		// 游标滚动数据
}
作用
  • 处理大批量的文档查询
  • 游标分页查询
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值