# Scrolls в ES

**URL:** <https://discuss.elastic.co/t/scrolls-es/60364>\
**Category:** Вопросы на русском языке\
**Created:** [September 13, 2016, 10:08am UTC](https://discuss.elastic.co/t/scrolls-es/60364 "2016-09-13T10:08:42Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Katja](https://avatars.discourse-cdn.com/v4/letter/k/0ea827/32.png) [@Katja](https://discuss.elastic.co/u/Katja)\
**Post date:** [September 13, 2016, 10:08am UTC](https://discuss.elastic.co/t/scrolls-es/60364/1 "2016-09-13T10:08:42Z")

</div>

Здравствуйте! У меня такая проблема: мне нужно сравнить определенный field в моем индексе и провести расчеты, которые потом сохраняются в другой индекс в processResults(hit1, hit 2). Для этого я использую scroll с двумя разными queries. После первой итерации все зависает. Подскажите, пожалуйста, в чем моя проблема.

```
    QueryBuilder qb = prefixQuery("src", "s");

    SearchResponse scrollResp = client.prepareSearch(index)
            .setScroll(new TimeValue(60000))
            .setQuery(qb)
            .setSize(100)
            .execute()
            .actionGet(); 

    while (true) {
        for (SearchHit hit : scrollResp.getHits().getHits()) {
            //Handle the hit...
            QueryBuilder qb2 = prefixQuery("src", "src");

            SearchResponse scrollResp2 = client.prepareSearch(index)
                        .setScroll(new TimeValue(60000))
                        .setQuery(qb2)
                        .setSize(100)
                        .execute()
                        .actionGet();
           while (true) {
                for (SearchHit hit2 : scrollResp2.getHits().getHits()) {
                   processResults(hit1, hit2)
                }
                scrollResp2 = client.prepareSearchScroll(scrollResp2.getScrollId()).setScroll(new TimeValue(60000)).execute().actionGet();
                //Break condition: No hits are returned
                if (scrollResp2.getHits().getHits().length == 0) {
                    break;
                }
            }
        }
        scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).setScroll(TimeValue.timeValueMinutes(1)).execute().actionGet();
        //Break condition: No hits are returned
        if (scrollResp.getHits().getHits().length == 0) {
            break;
        }

    }

```

* * *

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [September 13, 2016, 7:22pm UTC](https://discuss.elastic.co/t/scrolls-es/60364/2 "2016-09-13T19:22:08Z")

</div>

Где и как зависает?

---

<div class="post-metadata">

**Author:** ![Katja](https://avatars.discourse-cdn.com/v4/letter/k/0ea827/32.png) [@Katja](https://discuss.elastic.co/u/Katja)\
**Post date:** [September 14, 2016, 9:51am UTC](https://discuss.elastic.co/t/scrolls-es/60364/3 "2016-09-14T09:51:47Z")

</div>

Спасибо, я думаю разобралась с этим. Были выставлены неправильные параметры для timeout.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 1:45pm UTC](https://discuss.elastic.co/t/scrolls-es/60364/4 "2017-07-06T13:45:30Z")

</div>

Closed on July 6, 2017, 1:45pm UTC


