2015-06-11 9 views
9

Ich verwende Riak Search. Irgendwann habe ich den Index aus dem Bucket entfernt. Nachdem ich einige neue Objekte in den Bucket eingefügt habe, setze ich den Index wieder an.Wie indizieren bestehende nicht-indizierte Daten in Riak Suche?

Wenn ich nach dem Index suche, kann ich die Objekte nicht finden, die nicht indiziert wurden.

Wie kann ich sie jetzt indizieren? Ich denke, dass die Lösung auch für andere nicht-indizierte Legacy-Buckets geeignet wäre.

+0

Es scheint mehr wie ein Fehler. Hast du es gemeldet? –

+0

Ich denke, es sollte so passieren, weil ich den Index entfernt habe, als ich die neuen Objekte hinzugefügt habe, die offensichtlich nicht indiziert wurden. – Hao

+1

Wenn Sie einen Index hinzufügen, sollte er unabhängig von Ihren vorherigen Aktionen in einem konsistenten Zustand enden. Machen Sie das minimal reproduzierbare Beispiel und melden Sie es. –

Antwort

1

Meine Lösung für diese und einige ähnliche Probleme mit Suchindizes auf Bucket-Typen verwende ich die folgenden Verfahren (nur in der Entwicklung) haben keine exp. mit Riak in der Produktion hat jetzt so jemand anderes, das zu beantworten:

  1. löschen Sie den Suchindex

    riakc_pb_socket: delete_search_index (Pid, < < "XXX" >>, []).

  2. Reindex mit Erstellung eines neuen Index (in diesem Fall mit dem Standard -Werten)

    riakc_pb_socket: create_search_index (Pid, < < "XXX" >>, < < "_yz_default" >> [ ]).

nach, dass Ihr Index aktualisiert werden soll, und ziehen Sie `t Ihren Code ändern sowieso müssen ....

Codierung glücklich mit erlang und Riak

Canislupax