Возобновление запроса прокрутки после промежуточного сбоя - PullRequest
0 голосов
/ 16 декабря 2018

Допустим, если мы прокручиваем документ с большим индексом (скажем,> 50M) и один из запросов после прокрутки 99% документов завершается с ошибкой, похоже, что мы должны начать все сначала, что чертовски дорого ичувствует себя неэффективным.

Для прокрутки я использую нарезанную прокрутку

public void creatSlicedScroll(String index, String type){
    ClusterSearchShardsResponse clusterSearchShardsResponse = 
    searchShard(index,type);
    int slices = clusterSearchShardsResponse.getGroups().length;
    int scrollSize = 10;

    IntStream.range(1, slices).parallel().forEach(i -> {
        //prepare search
        SliceBuilder sliceBuilder = new SliceBuilder(i, slices);
        SearchResponse scrollResponse = 
        client.prepareSearch(index).setTypes(type)
                .setScroll("1m")
                .slice(sliceBuilder)
                .setSize(scrollSize)
                .setFetchSource("id", null).
                get();
       fetchScroll(scrollResponse);
    });
}




public void fetchScroll(SearchResponse scrollResp){
    //Scroll until no hits are returned
    do {
        for (SearchHit hit : scrollResp.getHits().getHits()) {
            //Fields Object for each document
            Map<String, SearchHitField> responseFields = hit.getFields();
            System.out.println(responseFields.toString());
        }
        scrollResp = client.prepareSearchScroll(
                scrollResp.getScrollId())
                .setScroll("1m")
                .execute()
                .actionGet();
    } while(scrollResp.getHits().getHits().length != 0); // Zero hits mark the end of the scroll and the while loop.
}

Пожалуйста, предложите, как обработать этот сценарий сбоя.Согласно документации, scrollcontext остается активным до указанного времени, указанного во время запроса.Рассмотрим случай, когда произошел сбой сети, и контекст прокрутки предназначен для 2M, и программа прочитала около 50% данных.Как возобновить с 50% до 100%

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...