2012-10-09 2 views
6

Ich habe einen Elasticsearch Server, dass Indizes ausgeführt und durchsuchte Dokumente des ausgezeichneten Reifen gem verwenden. Alles funktioniert gut, außer ich bin nicht sicher, wie etwa geht manuell Dokumente aus dem Suchindex zu entfernen.Entfernen/Löschen ein indexierten Dokumente Elasticsearch mit Reifen (mit weicher über ActsAsParanoid löschen)

Ich habe über den RDoc gegossen und stundenlang gesucht, aber das ist der einzige Hinweis auf eine Lösung, die ich https://github.com/karmi/tire/issues/309 finden kann. Gibt es einen einfacheren Weg, um andere als eine benutzerdefinierte Wrapper um curl den Aufbau und die Anforderung manuell zu machen?

Eine weitere Schwierigkeit ist, dass ich ein Soft-Delete-Juwel namens ActsAsParanoid verwende, so dass die Tyre :: Model :: Callbacks das Objekt auf Soft-Delete nicht entfernen.

Irgendwelche Ideen?

Antwort

6

Schalten Sie können entfernen Sie einfach manuell das Soft-gelöschte Objekt aus dem Index wie folgt:

@user = User.find(id) #or whatever your indexed object is 
User.tire.index.remove @user #this will remove them from the index 

Das ist es!

10

Falls Sie nur die ID (zB 12345):

User.tire.index.remove 'user', '12345' 

Oder allgemeiner:

klass.tire.index.remove klass.document_type, record_id 

(was ich denke, ist äquivalent zu dem, was remove @user hinter den Kulissen tun wird)

reference

Verwandte Themen