为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取索引中的文档总数

如何获取索引中的文档总数

Go
慕斯王 2022-05-18 15:45:14
使用的库:https ://pkg.go.dev/github.com/olivere/elastic/v7res, _ := orm.Es.Search("pk").Do(context.Background()) fmt.Println("res",res.TotalHits()) // output:10000count: 3628800 查询的数字只有10000,怎么得到总数?
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

尝试将track_total_hits搜索选项设置为true.

通常,如果不访问所有匹配项,就无法准确计算总命中数,这对于匹配大量文档的查询来说代价高昂。track_total_hits parameter允许您控制应如何跟踪点击总数。鉴于通常有一个命中数的下限就足够了,例如“至少有 10000 个命中”,因此默认设置为 10,000。这意味着请求将准确计算总命中数,最高可达 10,000 次命中。如果您在某个阈值之后不需要准确的命中数,那么加快搜索速度是一个很好的权衡。

设置为 true 时,搜索响应将始终跟踪准确匹配查询的命中数

官方文档中有一篇很棒的文章描述了它是什么。

通过调用TrackTotalHits方法在您的代码中启用它:

res, _ := orm.Es.Search("pk").TrackTotalHits(true).Do(context.Background())

或者,如果您只需要总数,只需使用Count API

res, _ := orm.Es.Count("pk").Do(context.Background())


查看完整回答
反对 回复 2022-05-18
  • 1 回答
  • 0 关注
  • 235 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号