Hello List,

I'm currently trying to update my Lucene 3.6-application to 4.0.

Most of it works (although your migration guide lacks a bit of aspects I had to figure out myself), but for one fairly large database I want to check whether the Document in the Lucene database is already at the latest modification time. If so, I can continue to the next item on the list.

So to do that, I index an additional field in the Document with the modification time and later retrieve that.

With 3.6, I did this:
IndexReader reader = writer.getReader();
Term idTerm = new Term("idField, "idText");
TermDocs termDocs = reader.termDocs(idTerm);

if(termDocs.next())
{
 int docNum = termDocs.doc();
 Document doc = reader.document(docNum);
 // etc
}

It worked as far as I can tell, besides, it worked regardless of whether the writer was actually started with a empty directory (on disk) or one that had data in it.

What is the correct way to implement something like the above procedure in 4.0? The writer doesn't have a getReader() anymore and the IndexReader doesn't have a termDocs()-method (and the docsEnum is only on specific IndexReader's?).

The "migration guide" isn't very clear on this and I wasn't really able to find any useful documentation on how the new reader/writer-stuff is actually to be used... Did I overlook the documentation?

And there are some additional things to consider, like the database may not have been created yet (i.e. it may be empty at the moment of the above code). And in my current code, I only have access to the IndexWriter, a reader or searcher hasn't even been created yet.

Best regards,

Arjen

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to