There is no way to "update" a document in lucene, you always have to remove the existing document and add the updated version with ALL its fields. The updateDocument-method of IndexWriter exists only for convenience (and to assure the operation is atomic), but internally it does just that: remove the old document and add a new one. In generally, this works best if you get all fields of the document from your external datasource instead of the index, because depending on your field configuration, there might be some information missing (especially for fields that are not STORED or DocValues).

See also the Lucene FAQ:
https://wiki.apache.org/lucene-java/LuceneFAQ#How_do_I_update_a_document_or_a_set_of_documents_that_are_already_indexed.3F

Regards

Am 09.08.2016 um 20:51 schrieb lukes:
Thanks for the reply.

   Is there a way to partially update the document ? I know there's a API
updateDocument on IndexWriter, but that seems to create a new document with
just a field i am specifying. What i want is delete some fields from
existing(indexed) document, and then add some new fields(could or not be
same). Alternatively i tried to search for the document, and then calling
removeFields and finally updateDocument, but now any search after the above
process is not able for find that document(I created the new IndexReader).
Am i missing anything ?

Regards.



--
View this message in context: 
http://lucene.472066.n3.nabble.com/Newbie-Questions-tp4290817p4291024.html
Sent from the Lucene - Java Users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org



Reply via email to