You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Omar Didi <od...@Cyveillance.com> on 2007/04/18 22:08:30 UTC

another question about update an unidexed field.

Hi all,

Before posting this question I have read a couple of old threads on this list on ways to update an existing index. the conclusion was to recreate a new index. unfortunalty this may not be possible in my case (please correct me if I am wrong). 
let me first describe what I am having trouble with:
I have an index that has all sort of field types (keyword,Unstored,Text,Unindexed), I need to update the value for a field that is Unindexed for all the documents in the index. (I can't recreate the index from scratch since the files I used to create the index are not available anymore).
so my idea was to do somthing like the following:

1 - create IndexWriter/Indexreader/IndexSearcher for existing index
2 - getAllDocuments(Searcher) as Hits.
3 - for each Hits object
	Document origDoc = hits.doc( i );
	origDoc.removeField( fieldToBeUpdated ); // this field is Unindexed
	origDoc.add( new Field( fieldToBeUpdated ,newValue,Field.Store.YES,Field.Index.NO ) );
      reader.deleteDocument( hits.id( i ) );
	writer.addDocument( origDoc );
4 - close Reader/Writer/Searcher
5 - optimize index.

is this the right approach?. what will happen to the fields in the index that are Unstored in the new index? am I going to lose any data?.

Thank you very much for all your help.

Omar.

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