Löschen von index von Solr mit solrj als client
Ich bin mit solrj als client für die Indizierung von Dokumenten auf dem solr-server.
Ich habe ein problem beim löschen der Indizes durch die 'id' aus dem solr-server.
Ich benutze folgenden code zum löschen der Indizes:
server.deleteById("id:20");
server.commit(true,true);
Nach, wenn ich wieder für die Dokumente suchen, das suchergebnis enthält die oben genannten Dokument auch. Weiß nicht, was schief geht mit diesem code.
Bitte helfen Sie mir mit Problem.
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim Aufruf deleteById, benutzen Sie einfach die id, ohne query-syntax:
Nachdem Sie löschen das Dokument commit der server und fügen Sie die folgenden Zeilen.
Nachdem der server commit-Linie.
Verwenden Sie die Methode deleteByQuery() zum löschen der Dokumente, die der Anfrage entsprechen:
Also die deleteById funktioniert nur, wenn Sie sind, bilden Sie Ihren Schlüssel mit nur einem Attribut. Also, ich hatte den Fall, wo das id war eine Kombination von mehreren Attributen wie employeeId+deptId. Aber mein Tisch hatte employeeId & deptId als separate Spalten mit Indizes erstellt wurde. Also, wenn ich wollte, um einen Datensatz zu löschen, ich hatte nur die employeeId und nicht deptId. Ich verwendet die curl-Befehl zu löschen, wo können Sie die Spalte angeben und deren Wert und es löscht die ganze Platte.
E. g.
curl http://localhost:8983/solr/update --data ':' -H 'Content-type:text/xml; charset=utf-8'