首先感谢 Bboss作者兼 elasticsearch交流 群主(一个非常热心的大佬)
这里直接看代码:
public Map<Integer, List<JestResult>> searchSlicedScrolls(MyYangBao yangBao, QueryBuilder queryBuilders, Set<String> includePatterns) {
final int slicesMax = 5;
ExecutorService singleThreadPool = UtilsJava.returnSingleThreadPool(slicesMax);
Map<Integer, List<JestResult>> stringListMap = Collections.synchronizedMap(new HashMap<>(slicesMax));
//分成5个切片去执行
for (int id = 0; id < slicesMax; id++) {
int finalId = id;
ArrayList<JestResult> jestResults = new ArrayList<>();
singleThreadPool.submit(() -> {
SliceBuilder sliceBuilder = new SliceBuilder(finalId, slicesMax);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder()
.query(queryBuilders)
// 设置 不排序 按照文档存入顺序返回
.sort("_doc")
.slice(sliceBuilder);
Search.Builder builder = new Search.Builder(searchSourceBuilder.toString())
.addIndex(yangBao.getIndexName())
.addType(yangBao.getTypeName())
.setParameter(Parameters.SIZE, GlobalConstants.HITS_SIZE)
.setParameter(Parameters.SCROLL

这篇博客介绍了如何利用Jest客户端在Elasticsearch中实现Sliced+Scroll的并行查询策略。通过代码示例展示了具体的实现过程,并提到了参考资料的来源。
最低0.47元/天 解锁文章
754

被折叠的 条评论
为什么被折叠?



