RestHighlevelClient Sliced ​​Scroll не работает - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь получить большие записи данных из Elasticsearch (Версия - 6.4.2) за минимальное время. Для этого я использую многопоточность для запуска каждой прокрутки фрагмента в отдельном потоке.

пример: мой запрос содержит 3 фрагмента, поэтому:

thread 1 - slice id 0
thread 2 - slice id 1
thread 3 - slice id 2

Но, пытаясь получить результаты с идентификаторами срезов 1 и 2, он возвращает 0 попаданий.

Я пытаюсь RestHighLevelClient#search()

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)
      );

}
...