получение идентификаторов всех документов, проиндексированных в упругом поиске с использованием прокрутки - PullRequest
2 голосов
/ 27 июня 2019

Подобные вопросы задавались ранее и снабжены примитивным кодом ниже, основанным на аналогичных ответах. Мое требование - прокручивать / прокручивать все индексируемые в настоящее время документы в упругом поиске, чтобы получить список их уникальных идентификаторов. Приведенный ниже код отлично работает для первых 1000 документов, но затем застревает в цикле do while без получения новых идентификаторов. Может дальше не прокручивать? Может ли кто-нибудь быть таким добрым и указать на ошибку / проблему? Спасибо!

var searchResult = client.Search<Document>(
    s => s
    .AllTypes()
    .From(0)
    .Size(1000)
    .MatchAll()
    .Scroll("10s")
);

IBulkResponse indexResult = null;
do
{
    var result = searchResult;
    searchResult = client.Scroll<Document>("10s", result.ScrollId);
    if (searchResult.Documents.Any())
    {
    foreach (var doc in searchResult.Documents)
    {
        var id = doc.some_id.Trim();
        if (id_list.Contains(id) == false)
        {
        id_list.Add(id);
        Console.WriteLine(id_list.Count);
        }
    }
    }

    page++;
} while (searchResult.IsValid && indexResult != null && indexResult.IsValid && searchResult.Documents.Any());
...