Подобные вопросы задавались ранее и снабжены примитивным кодом ниже, основанным на аналогичных ответах. Мое требование - прокручивать / прокручивать все индексируемые в настоящее время документы в упругом поиске, чтобы получить список их уникальных идентификаторов. Приведенный ниже код отлично работает для первых 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());