Return-Path: X-Original-To: apmail-lucene-java-user-archive@www.apache.org Delivered-To: apmail-lucene-java-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4DCAF99AC for ; Mon, 19 Sep 2011 06:27:58 +0000 (UTC) Received: (qmail 73687 invoked by uid 500); 19 Sep 2011 06:27:55 -0000 Delivered-To: apmail-lucene-java-user-archive@lucene.apache.org Received: (qmail 73541 invoked by uid 500); 19 Sep 2011 06:27:53 -0000 Mailing-List: contact java-user-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-user@lucene.apache.org Delivered-To: mailing list java-user@lucene.apache.org Received: (qmail 73513 invoked by uid 99); 19 Sep 2011 06:27:52 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Sep 2011 06:27:52 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of uwe@thetaphi.de designates 188.138.97.18 as permitted sender) Received: from [188.138.97.18] (HELO mail.sd-datasolutions.de) (188.138.97.18) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Sep 2011 06:27:45 +0000 Received: from VEGA (port-92-196-115-146.dynamic.qsc.de [92.196.115.146]) by mail.sd-datasolutions.de (Postfix) with ESMTPSA id BB35D14AA0DF for ; Mon, 19 Sep 2011 06:27:24 +0000 (UTC) From: "Uwe Schindler" To: References: In-Reply-To: Subject: RE: Extracting all documents for a given search Date: Mon, 19 Sep 2011 08:27:44 +0200 Message-ID: <00a801cc7695$3e3a3af0$baaeb0d0$@thetaphi.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQGtCdQqfVQl72BYwV1hfwwjgs5LSwFqBIHUAs186tUBg7RT/5VlPL6A Content-Language: de X-Virus-Checked: Checked by ClamAV on apache.org In recent Lucene versions there is an implementation of the mentioned = collector to count hits, so there is no need to implement it: http://lucene.apache.org/java/3_4_0/api/core/org/apache/lucene/search/Tot= alHitCountCollector.html Uwe ----- Uwe Schindler H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de eMail: uwe@thetaphi.de > -----Original Message----- > From: Trejkaz [mailto:trejkaz@trypticon.org] > Sent: Monday, September 19, 2011 8:10 AM > To: java-user@lucene.apache.org > Subject: Re: Extracting all documents for a given search >=20 > On Mon, Sep 19, 2011 at 3:50 AM, Charlie Hubbard > wrote: > > Here was the prior API I was calling: > > > > Hits hits =3D getSearcher().search( query, filter, sort ); > > > > The new API: > > > > TopDocs hits =3D getSearcher().search( query, filter, = startDoc + > > length, sort ); > > > > So the question is what new API can I use that allows me to extract > > all documents matching the query, sort, and filter in a efficient = way? >=20 > How I do this: >=20 > // 1. Figure out how many results there will be. > class CountCollector extends Collector { > int count; > public void collect(int doc) { > count++; > } > // ... other empty methods ... > } > CountCollector collector =3D new CountCollector(); > getSearcher().search(query, filter, collector); > int hitCount =3D collector.count; >=20 > // 2. Actually do the query. > hits =3D getSearcher().search(query, filter, hitCount, sort); >=20 > It is a bit unfortunate that there is no equivalent to TopDocs which = can grow > dynamically, but this way is still going to be faster than Hits was, = for larger > result sets. >=20 > TX >=20 > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org > For additional commands, e-mail: java-user-help@lucene.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org For additional commands, e-mail: java-user-help@lucene.apache.org