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.
course.rb
Modell sieht so aus:
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.
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.
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:
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.
Tags und Links ruby-on-rails elasticsearch searchkick