On Wed, 2008-06-25 at 21:47 +0200, Paolo Valleri wrote: > For take docid of all document in the index I need to write a class > that implement indexReader or there is an other method ?
Something along the following should work and be quite fast. However, it might be overly complex. // Do this every time the index is updated IndexReader reader = IndexReader.open(indexLocation); BitSet deleted = new BitSet(reader.maxDoc()); for (int i = 0 ; i < reader.maxDoc() ; i++) { if (reader.isDeleted(i)) { deleted.set(i); } } QueryParser parser = new QueryParser("freetext", new StandardAnalyzer()); // Do this for every search Query query = parser.parse("java"); QueryWrapperFilter filter = new QueryWrapperFilter(query); BitSet workset = filter.bits(reader); workset.or(deleted); // workset now marks all docids that are either matching or deleted System.out.print("Non-matching documents: "); for (int i = 0 ; i < reader.maxDoc() ; i++) { if (!workset.get(i)) { System.out.print(i + " "); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]