ElasticsearchTemplate获取大量数据的用法
背景
最近给听见的用户导积分的数据,由于积分服务重构了之后,需要去es里面查询对应的积分数据。
遇到的问题
用ElasticsearchTemplate的queryForList最多只能取出一万条数据。超过的部分没办法取出来。问:如果导出的数据多余一万条,怎么破?
前方高能,非战斗人员请尽快离开战场。
仔细查了一下Spring-data-elasticsearch官网,发现针对大量数据查询,有两种方法:第一种是:Using startScroll and continueScroll
example:
第二种是:Using stream
经测试验证:第二种方式代码更简洁。效率比第一种快些。