Hello,
   
  I'm having difficulty deleting documents from an index. I am using lucene 
2.3.1
   
  The program that I have created recursively searches a directory and indexes 
the documents that it finds. The first thing I do is open the index for writing:
   
  writer = new IndexWriter(indexDir,analyzer);
   
  I then search the directory for certain types of files: text, pdf, doc, etc. 
I have a basic algorithm that creates a unique id for each document and checks 
the index to see if this file exists. If the file exists I then compare the 
date the file was last update against the date it was last indexed. If the file 
has been updated since it was last indexed I try to remove the file and 
re-index. I can successfully retrieve existing documents from the index using 
the file id but I cannot remove a file. This is the code I use to remove the 
file.
   
  private void removeDocument(IndexWriter writer, File file) throws 
CorruptIndexException, IOException
  {
      IndexReader indexReader = IndexReader.open(writer.getDirectory());
      indexReader.deleteDocuments(new 
Term(IDHConstants.FILE_ID,FileNameUtil.getFieId(file)));
      indexReader.close();
  }
   
  This code doesn't work. I have tried IndexWriter.updateDocument and it also 
does not work. Is is because I have an IndexWriter open when I try to delete 
the document?
   
  All help welcome.
   
  Regards,
  
Sean
   
   
   

Reply via email to