Excellent, a much simpler approach!

I think it should work?  Maybe override numDocs() as well?

Mike

"Karl Wettin" <[EMAIL PROTECTED]> wrote:
> 
> 20 aug 2007 kl. 14.33 skrev Michael McCandless:
> 
> > "karl wettin" <[EMAIL PROTECTED]> wrote:
> >
> >> I want to set documents in my IndexReader as deleted, but I will
> >> never commit these deletions. Sort of a filter on a reader rather
> >> than on a searcher, and no write-locks.
> >
> 
> >> I could go hacking in IndexReader, definalizing it for decoration of
> >> deleteDocument(int), or something like that, but would really
> >> prefere not to.
> >
> > Yeah I think it may just be cleanest to modify IndexReader to not
> > acquire the write lock nor commit its changes to the Directory on
> > close.
> 
> How about something simple as this:
> 
> public class DeleteFilteredIndexReader extends FilterIndexReader {
> 
>    public DeleteFilteredIndexReader(IndexReader in) {
>      super(in);
>      filter = new BitSet(in.maxDoc());
>    }
> 
>    private BitSet filter;
> 
>    public boolean isDeleted(int n) {
>      return filter.get(n) || super.isDeleted(n);
>    }
> 
>    public boolean hasDeletions() {
>      return filter.nextSetBit(0) > -1 || super.hasDeletions();
>    }
> 
> 
> I did not look in the classpath code of BitSet yet, but I suppose
> the nextSetBit(0) could be optimized.
> 
> 
> -- 
> karl
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to