Thanks, Uwe! Indeed you're right! Whenever IndexReader is called, a new document instance is created! And since the Document class does no override equals & hashCode, I can't know if the same doc was
retrieved. And since Document is final, I can only write a wrapper for it. Is this an oversight or intentional? In any case, it's not too convenient... Carmit Hi Carmit, equals and hashCode is not implemented for oal.document.Document, so two instances always compare not to each other. The same happens if you retrieve the document two times from same IndexReader. ----- Uwe Schindler H.-H.-Meier-Allee 63, D-28213 Bremenhttp://www.thetaphi.de <http://www.lucidimagination.com/search/out?u=http%3A%2F%2Fwww.thetaphi.de>u...@thetaphi.de eMail: -----Original Message----- From: Carmit Sahar [mailto:carmi...@gmail.com] Sent: Thursday, November 04, 2010 9:27 AM To: java-user@lucene.apache.org Subject: Weird document equals and hash through IndexReader & IndexSearcher Hi, I have a weird result: If I access the same document through the IndexReader or IndexSearcher, they are not equal and have different hash values: Document doc1 = indexSearcher.doc(i); Document doc2 = indexSearcher.getIndexReader().document(i); System.out.println(" Equal: " + doc1.equals(doc2) + ", Hash: " + doc1.hashCode() + ", " + doc2.hashCode() + ", num:" + i); I'm using Lucene 3.0.2 (No multithreads, nobody is simultaneously updating the index) What am I missing? Thanks Carmit (Could you please forward your answers to my private address as well?)