Ich versuche zu verstehen, warum ein elasticsearch.net NEST Scroll-Aufruf die gleichen Ergebnisse zurückgibt. Ich habe eine äußere Schleife in meiner C# -Anwendung, die die aktuelle Seite verfolgt und zusammen mit der Stapelgröße übergeben wird.Elasticsearch.net - NEST Scroll behält die gleichen Ergebnisse
List<int> ids = GetIds();
int count = _batchSize;
int currentPage = 0;
while (count == _batchSize)
{
var results = Execute(client => client.Search<Invoice>(s => s
.Index(indexName)
.Query(q => q
.Terms(n => n
.Field(f => f.Items.FirstOrDefault().MyInformation.FirstOrDefault().ItemID)
.Terms(ids)))
.Size(batchSize)
.From(currentPage * batchSize)
.Scroll("1m")
));
DoSomethingWithResults();
count = results.Count();
currentPage++;
}
In der oben rufen Sie die Liste der IDs innerhalb IDs von verschachtelten Elementen in einer Eins-zu-Beziehung mit den Objekten sie enthalten sind: Ich habe den Code vereinfacht. Deshalb möchte ich scroll verwenden, da ich nicht weiß, wie viele Rechnungsobjekte zurückgegeben werden. Jedes Mal, wenn dies aufgerufen wird, wird currentPage um 1 inkrementiert. Ich hatte angenommen, dass der nächste Stapel aus dem Bildlauf zurückgegeben wird.
Ich denke, ich mache etwas falsch, da ich dies als mehr von einem Paging-Flow betrachte.
Thanks again Russ! Ich hatte nicht bemerkt, dass die ersten und nachfolgenden Abrufvorgänge unterschiedliche Anrufarten verwendeten. Alles funktioniert funktioniert wie geplant jetzt, ich bin aufgeregt! – CorribView
Super zu hören! –