Wie geht man mit elasticsearch delay um, wenn Unit-Test durchgeführt wird?

8

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?

    
D_S_toowhite 13.08.2014, 03:12
quelle

1 Antwort

8

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.

Siehe @Elastselesearch

mit Java-API,

%Vor%

mit dem JavaScript-Client:

%Vor%     
progrrammer 13.08.2014, 04:16
quelle