Cool man. The Hits.id(int) worked fine. Thanks for the detailed info.
And hopefully your answer is going to usefull for future Google searches. ;) Cesar Steven A Rowe wrote: > > Hi Cesar, > > On 02/11/2008 at 2:19 PM, Cesar Ronchese wrote: >> I'm running problems with document deletion. >> [...] >> This simply doesn't delete anything from the Index. >> >> //see the code sample: >> //"theFieldName" was previously stored as Field.Store.YES and >> Field.Index.TOKENIZED. >> Term t = new Terms("theFieldName", "theFieldContent"); >> objIndexReader.DeleteDocuments(t); > > (You have two typos here - "new Term/s/" and /D/eleteDocuments() - I > assume that this is just a transcription error, since you must have gotten > this code to run...) > > When you construct a Term instance, no analysis will be performed on > "theFieldContent". Since "theFieldName" is TOKENIZED, it was analyzed, > and this is likely where the mismatch is occurring. From > <http://lucene.apache.org/java/2_3_0/api/org/apache/lucene/index/IndexReader.html#deleteDocuments(org.apache.lucene.index.Term)>: > > This is useful if one uses a document field to > hold a unique ID string for the document. > > If you're trying to delete documents based on a document ID held as the > entire value of a field, then you should be using > Field.Index.UN_TOKENIZED. From > http://lucene.apache.org/java/2_3_0/api/org/apache/lucene/document/Field.Index.html#UN_TOKENIZED>: > > Index the field's value without using an Analyzer, > so it can be searched. As no analyzer is used the > value will be stored as a single term. This is > useful for unique Ids like product numbers. > >> 2) DeleteDocument(numDoc) <== this problem is a woot problem >> >> [...] >> >> I mean, if I call objIndexReader.DeleteDocument(0), it will >> delete the first document from the entire INDEX, not the >> first document in the Hits collection. So, it deleted the >> first documents I have inserted some days ago, in previous >> indexing sessions. > > Yes, this is how this method is designed to function. The javadoc > description is perhaps too brief: "Deletes the document numbered > 'docNum'". As you have discovered, "docNum" is the one-up number assigned > internally by Lucene to each document as it is added to the index. > >> I ask: is there a way to get the correct docNum from the >> document retrieved in the Hits collection? > > Check out Hits.id(int): > <http://lucene.apache.org/java/2_3_0/api/org/apache/lucene/search/Hits.html#id(int)> > > The "id" returned by Hits.id(int) is the same thing as the "docNum" > parameter to IndexReader.deleteDocument(int). > > It sounds like the documentation could benefit from some more discussion > of the "docNum"/document "id" feature... > > Steve > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/Delete-problems----O.O-tp15418663p15420001.html Sent from the Lucene - Java Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]