In cases where we dont know the possible number of hits -- and wanting to test the new 2.4 way of doing things,
could I use custom hitcollectors for everything? any performance penalty for this? from what I understand both TopDocCollector and TopDocs will try to allocate an array of Integer.MAX_VALUE if I specify that for the page size? Best. On Tue, Sep 16, 2008 at 5:59 AM, Daniel Noll <[EMAIL PROTECTED]> wrote: > Otis Gospodnetic wrote: >> >> Hi, >> >> Check the Hits javadoc: >> >> * @deprecated Hits will be removed in Lucene 3.0. <p> >> * Instead e. g. [EMAIL PROTECTED] TopDocCollector} and [EMAIL PROTECTED] >> TopDocs} can be >> used:<br> >> * <pre> >> * TopDocCollector collector = new TopDocCollector(hitsPerPage); >> * searcher.search(query, collector); >> * ScoreDoc[] hits = collector.topDocs().scoreDocs; >> * for (int i = 0; i < hits.length; i++) { >> * int docId = hits[i].doc; >> * Document d = searcher.doc(docId); >> * // do something with current hit >> * ... >> * </pre> > > Related topic: what if we need all the hits and not just the first 100? > > TopDocCollector has a couple of drawbacks, one is that you need to know the > number of hits before the query, and you can't overallocate as it will run > you out of memory. I take it this is the suggested workaround for that: > > TopDocCollector collector = new TopDocCollector(PAGE_SIZE); > searcher.search(query, collector); > TopDocCollector collector2 = new TopDocCollector( > collector.getTotalHits()); > searcher.search(query, collector2); > > And then wrap it up such that the initial search's results are immediately > available and the rest load on demand? Sounds almost exactly like Hits to > me though, with the drawback being we have to write it ourselves instead of > it being part of Lucene. > > Or do we make a replacement for TopDocCollector which doesn't have this > drawback, and uses an alternative for PriorityQueue which allows its array > to grow? > > Daniel > > > -- > Daniel Noll > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]