Es gibt eine gewisse Verzögerung in elasticsearch, um anzufordern, ein Dokument in das Dokument zu indizieren, das durchsucht werden kann. Ich möchte wissen, wie man in einem Komponententest damit umgeht, zum Beispiel zuerst ein Dokument indizieren und dann prüfen, ob es wirklich indexiert ist. Jetzt benutze ich einfach einen Thread.sleep () - Aufruf, um etwas Zeit zu verstrecken (ich benutze eine einfache Junit-Klasse), sagen wir 2 Sekunden. Ist das ok? Oder gibt es bessere Lösungen?
Sie können die Indizes nach dem Schreiben in elasticsearch aktualisieren.
Indem Sie das tun,
%Vor%Die Aktualisierungs-API ermöglicht es, einen oder mehrere Indizes explizit zu aktualisieren Alle Vorgänge, die seit der letzten Aktualisierung durchgeführt wurden, sind für die Suche verfügbar. Die (nahen) Echtzeitfähigkeiten hängen von der verwendeten Index-Engine ab. Zum Beispiel, das interne erfordert Aktualisieren aufgerufen werden, aber durch Standardmäßig wird eine Aktualisierung regelmäßig geplant.
mit Java-API,
%Vor%mit dem JavaScript-Client:
%Vor%Tags und Links unit-testing elasticsearch delay