Wie kann ich die delete/update-ein doc mit lucene?
Erstelle ich ein tagging-system für meine Website
Bekam ich die Grundlagen des Hinzufügens eines Dokuments in das lucene aber ich kann scheinen, um herauszufinden, wie Sie ein Dokument löschen oder aktualisieren, wenn der Benutzer ändert die tags etwas. Ich fand Seiten, die sagen verwenden Sie die Dokument-index-und ich brauche zu optimieren, bevor die Wirkung, aber wie bekomme ich die Dokument-index? Auch ich anderes gesehen, die besagten, IndexWriter zu löschen, aber ich konnte nicht herausfinden, wie es zu tun mit, dass entweder.
Ich bin mit C# asp.net und ich habe kein java auf dem Computer installieren
Du musst angemeldet sein, um einen Kommentar abzugeben.
Welche version von Lucene verwenden Sie? Der IndexWriter-Klasse hat eine update-Methode, mit der Sie update (BTW ein update unter der Haube ist wirklich ein delete gefolgt von einem hinzufügen). Sie müssen eine id (z.B. als Dokument-id) können Sie zu aktualisieren. Beim indizieren des Dokuments, fügen Sie ein einzigartiges Dokument-Kennung, wie eine URL, ein Zähler, usw. Dann wird der "Begriff" wird die ID des Dokuments, das Sie aktualisieren möchten. Zum Beispiel mit Hilfe der URL, die Sie aktualisieren können, also:
Benötigen Sie eine
IndexReader
um ein Dokument zu löschen, ich bin mir nicht sicher über die .net-version, aber die Java-und C++ - Versionen des Lucene-API haben einenIndexModifier
Klasse verbirgt die Unterschiede zwischenIndexReader
undIndexWriter
Klassen und benutzt nur angebracht, wie Ihr Sie nenntaddDocument()
undremoveDocument()
.Auch, es gibt kein Konzept der Aktualisierung ein Dokument in Lucene Sie haben, um es zu entfernen Sie eine re-fügen Sie Sie erneut hinzu. Um dies zu tun, werden Sie brauchen, um stellen Sie sicher, dass jedes Dokument hat eine eindeutige id gespeichert in der index.