首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RestHighlevelClient切片卷轴不工作

RestHighlevelClient切片卷轴不工作
EN

Stack Overflow用户
提问于 2019-01-15 16:53:28
回答 1查看 1.1K关注 0票数 2

我试图在最短的时间内从Elasticsearch (版本6.4.2)中获取大量数据记录。为此,我使用多线程在单独的线程中运行每个切片滚动。

示例:我的查询有3个分片,因此:

代码语言:javascript
复制
thread 1 - slice id 0
thread 2 - slice id 1
thread 3 - slice id 2

但是,当尝试从片段id 1和2中获取结果时,它返回0次命中。

我正在尝试RestHighLevelClient#search()

代码语言:javascript
复制
public SearchResponse GetResponse(Integer sliceCount, Integer totalSlice, Integer searchSize, String[] identifiers ) throws IOException 
{

    SliceBuilder sliceBuilder = new SliceBuilder(sliceCount, totalSlice);
    SearchSourceBuilder slicedSource = new SearchSourceBuilder().slice(sliceBuilder);
    slicedSource = slicedSource
        .query(QueryBuilders.boolQuery()
        .must(QueryBuilders.termsQuery("_id", identifiers)));
    return client.search(
      new SearchRequest()
        .indices("indexname")
        .types("type")
        .scroll("scrolltime")
        .source(slicedSource)
      );

}
EN

回答 1

Stack Overflow用户

发布于 2020-07-01 05:53:22

您需要重用SearchSourceBuilder,而不是为每个线程创建它。

请参阅:https://github.com/elastic/elasticsearch/issues/24766

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54195478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档