Gibt es eine Möglichkeit zu überprüfen, ob Elasticsearch meine Anfrage bearbeitet hat?
Ich möchte Integrationstests für meine Anwendung durchführen und prüfen, ob nach dem Einfügen ein Datensatz gefunden werden kann. Zum Beispiel, wenn ich eine folgende Anfrage:Prüfen, ob Elasticsearch die Indexierung beendet hat
POST /_all/_bulk
{
"update":{
"_id":419,
"_index":"popc",
"_type":"offers"
}
}
{
"doc":{
"id":"419",
"author":"foo bar",
"number":"642-00419"
},
"doc_as_upsert":true
}
Und ich sofort überprüfen, der Test fehl, da es einige Zeit dauert, Elasticsearch meine Anforderung abzuschließen.
Wenn ich vor der Behauptung für 1 Sekunde schlafe, funktioniert es die meiste Zeit, aber nicht immer.
Ich könnte die Ruhezeit auf zB verlängern. 3 Sekunden, aber es macht die Tests sehr langsam, daher meine Frage.
Ich habe versucht, cat pending tasks und pending cluster tasks Endpunkte zu verwenden, aber die Antworten sind immer leer.
Wenn irgendetwas davon relevant ist, ich bin mit Elasticsearch 5.4
, Laravel Scout 3.0.5
und tamayo/laravel-scout-elastic 3.0.3
Danke, ich habe das 'index.refresh_interval' auf' 1ms' gesetzt und für 1000 Testläufe ist das Schlafen für 600ms immer genug. –