Hy Guys,
I use as suggested in question "Lucene 4.0 delete by ID" from 29.Oct -
instead of reader.delete(docID) use - writer.tryDeleteDocument(..)
method but for some reason it does not work.
My code is:
........
<Here create an index with 3 docs in it>
IndexWriterConfig iwc = new
IndexWriterConfig(Version.LUCENE_40, new
StandardAnalyzer(Version.LUCENE_40));
iwc.setOpenMode(OpenMode.APPEND);
IndexWriter writer = new IndexWriter(indexDir, iwc);
IndexReader nrtReader = DirectoryReader.open(writer, false); //
using "true" gives the same result
writer.tryDeleteDocument(nrtReader, 1); // using
nrtReader.leaves().get(0).reader() gives the same result (I have only
one segment)
nrtReader.close();
writer.close();
IndexReader ir = DirectoryReader.open(indexDir);
System.out.println("ir.numDeletedDocs(): " + ir.numDeletedDocs());
Bits liveDocs = MultiFields.getLiveDocs(ir);
System.out.println("liveDocs: " + liveDocs);
ir.close();
indexDir.close();
.........................
The output is:
ir.numDeletedDocs(): 0
liveDocs: null
--------------------------
This is just simple test - no merges or adding new docs after creation
of the index.
I need deleting by Lucene ID because we have Parallel Indexes and when
deleting document I should delete the related documents from both
indexes. So when having to delete some document I will have Term(s) that
are only in one of the indexes of the parallel index and can use
writer.deleteDocuments(term), but this will not help for the other index
in same Parallel Index. So I will have to find docs matching the Term(s)
and delete them in all sub-indexes of the Parallel Index.
Cheers,
Ivan
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org