Der Suchkick-Index ist nach der Neuindizierung aus dem Modell leer

8

Wenn ich versuche, Datensätze innerhalb eines Modells neu zu indizieren, wird ein leerer Index auf dem elasticsearch-Server festgelegt.

Also, ich habe ein Course Modell welches viele Instructors hat. Nun, ich habe diese Callback-Methode in instructor.rb model, die versucht, immer wieder zu indizieren, wenn etwas auf Instructor aktualisiert wird.

%Vor%

course.rb Modell sieht so aus:

%Vor%

Das Erstellen eines neuen Kursleiters führt zum Neuindizieren von Datensätzen

%Vor%

Wenn ich jetzt diese Abfrage ausführe:

%Vor%

Ich bekomme eine leere Antwort:

%Vor%

Wenn ich jedoch Course.reindex (von Konsole oder Modell) oder RAILS_ENV=development bundle exec rake searchkick:reindex CLASS=Course --trace form terminal starte, beginnt es wieder zu arbeiten.

%Vor%     
Abhinay 04.12.2017, 11:19
quelle

2 Antworten

1
%Vor%

Sieht so aus, als würde der Aufruf von Course.search_index.clean_indices in der letzten Zeile alte Indizes bereinigen. Ich denke, du möchtest es vielleicht in der ersten Zeile anrufen oder es überhaupt nicht nennen.

    
Zhong Zheng 08.12.2017 02:56
quelle
1

Ich habe eine schnelle Lösung für dieses Problem gefunden. Der Aufruf von touch für die übergeordnete Klasse ( Course ) von Instructor und ein anderes zugehöriges Modell scheint den Index korrekt zu aktualisieren.

instructor.rb Modell sieht so aus:

%Vor%

Da der Hook korrekt funktioniert, wenn etwas in Course model passiert, scheint touch den Zweck vorerst zu lösen.

Die Antwort auf das Problem bleibt mir ein Rätsel.

    
Abhinay 13.12.2017 07:57
quelle