2012-10-09 9 views
6

Mam serwer ElasticSearch, który indeksuje i przeszukuje dokumenty przy użyciu doskonałego klejnotu opony. Wszystko działa świetnie, z tym, że nie wiem, jak ręcznie usunąć dokumenty z indeksu wyszukiwania.Usuń/Usuń indeksowany dokument w ElasticSearch z oponą (z miękkim kasowaniem za pośrednictwem ActsAsParanoid)

Wylałem na RDoc i szukałem godzin, ale to jedyna wskazówka dotycząca rozwiązania, które mogę znaleźć https://github.com/karmi/tire/issues/309. Czy istnieje łatwiejszy sposób niż tworzenie niestandardowego opakowania wokół zwijania i ręczne tworzenie żądania?

Innym problemem jest to, że korzystam z klejów typu soft-delete o nazwie ActsAsParanoid, więc Tyre :: Model :: Callbacks nie usunie obiektu z funkcji soft-delete.

Wszelkie pomysły?

Odpowiedz

6

Okazuje się, że można po prostu ręcznie usunąć miękką-usunięty obiekt z indeksu tak:

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

to wszystko!

10

W przypadku gdy masz tylko identyfikator (np 12345):

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

lub bardziej ogólnie:

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

(co moim zdaniem jest równoważna co remove @user zrobi za kulisami)

reference

Powiązane problemy