Hi John, Are you sure you made the id "tokenized" while indexing? I could overcome this issue by having a tokenized field, which was used for the deletion as below.
document.add(new Field("id", id, Field.Store.YES, *Field.Index.TOKENIZED*)); Thanks On Tue, Aug 26, 2008 at 2:15 PM, Michael McCandless < [EMAIL PROTECTED]> wrote: > > > John Patterson wrote: > > I just discovered some strange behaviour with deleted documents. I do a >> search for documents with a certain query and delete one using >> IndexWriter.deleteDocuments(Term) using a key for the term. Then I repeat >> the search and the document is still there because I use a custom >> HitCollector which does not check IndexReader.isDeleted(int). That is all >> expected. >> > > Hmm -- once a document is deleted, your HitCollector won't ever see it. > During searching, isDeleted is called per document at a very low level. > > If your HitCollector is seeing it, it sounds like it wasn't really deleted. > Are you sure you closed the IndexWriter and then reopened your searcher, so > that the searcher will see the deletion? > > But when I try to show the deleted document by searching by key using the >> same term it was deleted with, it is not found. So it seems that the term >> (id:MYKEY) is removed from the index. >> > > This is odd -- the document should either be deleted (entirely), or not. > You shouldn't get different behavior if you search for the doc one way vs > another. > > So I was surprised that the term for the id was removed but not the other >> terms for document. >> > > That make two of us! > > Mike > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Kalani Ruwanpathirana Department of Computer Science & Engineering University of Moratuwa