Was passiert mit meinem ElasticSearch Index wenn ich den Rails Server stoppe?

8

Ich bin sehr neu in der Verwendung von Elasticsearch in einer Rails-Anwendung und verwende den zähen Edelstein, um es zu implementieren. Wenn ich meine Rails-App über rails s im Entwicklungsmodus starte, führe ich Elasticsearch über den Befehl elasticsearch aus und führe rake chewy:reset:all aus, um einen Index für meine Daten zu erstellen.

Alles funktioniert gut, aber wenn ich den Server neu starte, muss ich den Befehl rake chewy:reset:all erneut ausführen, um den Index neu zu erstellen, sonst erhalte ich einen Fehler. Was passiert mit dem Index, wenn ich den Server neu starte? Wird es beim Stoppen des Servers zerstört?

Ich bin nicht sehr vertraut mit der Funktionsweise von Elasticsearch. Ich würde mich freuen, wenn jemand ein wenig Licht in das Geschehen hinter den Kulissen wirft.

    
Cu1ture 03.07.2015, 07:55
quelle

2 Antworten

0

Ich habe Chewy noch nie benutzt, aber wenn man in der Dokumentation nach "Chewy.settings = {prefix: 'test'}" in config / initializers / chewy.rb schreibt, wird alles mit 'test' vorangestellt, auch in der Entwicklung . Ich weiß natürlich nicht, ob du das hier hingestellt hast.

Beachten Sie auch, dass Gurken dazu neigen, Ihre Tests im Entwicklungsmodus auszuführen ( Ссылка ).

Versuchen Sie daher, den Code "Chewy.settings = {prefix: 'test'}" aus Ihrem Code zu entfernen und fügen Sie stattdessen so etwas in Ihre chewy.yml-Datei ein:

%Vor%

Und dann fügen Sie das zu Ihrer Gurke env.rb-Datei hinzu:

%Vor%

Und versuchen Sie, Gurke wieder mit Rake Gurke

zu laufen     
Houen 25.07.2015 13:22
quelle
0

Wenn Sie elasticsearch in Ihrem Terminal ausführen, sollten Sie es als separaten Server betrachten, genau wie Ihre rails s . Es läuft völlig unabhängig von Ihrem Anwendungsserver. Da ich selbst ein zäher Benutzer bin, denke ich, dass es sich um verunreinigte Indizes handelt. So beheben Sie Fehler:

Überprüfen Sie, ob Sie den Index aktualisieren, wenn Sie Datensätze zur Datenbank hinzufügen / löschen. Wenn Chewy über ein indiziertes Dokument verfügt, das in Ihrer Datenbank keinen übereinstimmenden Datensatz enthält, können Sie einige unerwartete Fehler erhalten. Laut Chewys README :

  

Es ist auch eine gute Idee, die Bypass-Strategie in Ihrer Testsuite einzurichten und Objekte nur bei Bedarf manuell zu importieren. Verwenden Sie Chewy.massacre, wenn Sie ES-Indizes vor jedem Beispiel löschen möchten. Auf diese Weise können Sie unnötige ES-Anforderungen minimieren und den Verwaltungsaufwand reduzieren.

%Vor%     
maxhm10 18.06.2016 00:55
quelle