Hi,

the request to delete documents in IndexWriter instead of IndexReader comes 
up regularly. What if we implement a delete() method in IndexWriter like 
this:

  public synchronized void delete(int docNum) throws IOException {
    IndexReader ireader = IndexReader.open(directory);
    ireader.deleteIngoreLock(docNum);
    ireader.close();
  }

deleteIngoreLock would be a new method just like delete, but that doesn't 
create a lock -- it uses the IndexWriter's lock which exists all the time. 
Would this work and would this be safe?

I'm well aware that this can be slow, but it makes deleting documents so 
much easier for many people who don't have huge indices. We could document 
the fact that it's slow and use an array of document IDs to encourage 
people to delete more than one document at once, so the overhead of 
opening the reader becomes less.

Regards
 Daniel

-- 
http://www.danielnaber.de

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

Reply via email to