This code snipplet would only work, if you want to iterate over e.g. the first 20 documents (which is n in your code). If he wants to iterate over all results, he should think about using a custom (Hit)Collector.
The code below will be very slow for large result sets (because retrieving stored fields is not effective for a large number of documents, look into the warning about the "inner search loop" in Wiki). To just retrieve e.g. a Filename, it may really be better to use a FieldCache on the "FILE" field and inside the HitCollector, use the doc number to get the filename from the cache. I think the speed improve will be >>10 times as fast! ----- Uwe Schindler H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de eMail: u...@thetaphi.de > -----Original Message----- > From: Wouter Heijke [mailto:whei...@xs4all.nl] > Sent: Wednesday, June 10, 2009 11:44 AM > To: java-user@lucene.apache.org > Subject: Re: Migrating from Hit/Hits to TopDocs/TopDocCollector > > > Will this do? > > IndexReader indexReader = searcher.getIndexReader(); > TopDocs topDocs = searcher.search(Query query, int n); > for (int i = 0; i < topDocs.scoreDocs.length; i++) { > Document document = indexReader.document( topDocs.scoreDocs[i].doc); > final File f = new File( document.get( "FILE" ) ); > } > > > > I have existing code that's like: > > > > final Term t = /* ... */; > > final Iterator i = searcher.search( new > > TermQuery( t ) ).iterator(); > > while ( i.hasNext() ) { > > final Hit hit = (Hit)i.next(); > > // "FILE" is the field that recorded the original file indexed > > final File f = new File( hit.get( "FILE" ) ); > > // ... > > } > > > > It's not clear to me how to rewrite the code using TopDocs/ > > TopDocCollector and how to iterate over the results. > > > > A little help? Thanks. :-) > > > > - Paul > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org