|
|
Hi,
TopDocs tp = ms.search(lucquery, Integer.MAX_VALUE);
^^^This will crash and throw OutOfMemoryException
The simpliest way ist:
TopDocs tp = ms.search(lucquery, 1);
And then the total count is in tp.totalHits -- simple. The above query will
still count all hits, but return only 1. Adjust according to your needs (e.g.
10).
-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@xxxxxxxxxxx
> -----Original Message-----
> From: jm [mailto:jmuguruza@xxxxxxxxx]
> Sent: Tuesday, February 23, 2010 5:23 PM
> To: java-user@xxxxxxxxxxxxxxxxx
> Subject: get the total number of hits of a query
>
> Hi,
>
> I need to find out how many hits a query will get, is this a valid
> way? (Lucene 3.0)
>
> Query lucquery = ...;
> IndexSearcher[] indexes = ...
> MultiSearcher ms = new MultiSearcher(indexes);
> TopDocs tp = ms.search(lucquery, Integer.MAX_VALUE);
> int hits = tp.totalHits;
>
> Then depending on the number of hits I will run it again to get all
> results or not.
>
> I have found some posts talking about something similar but I could
> not see a clear answer...
>
> thanks
> javi
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@xxxxxxxxxxxxxxxxx
> For additional commands, e-mail: java-user-help@xxxxxxxxxxxxxxxxx
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@xxxxxxxxxxxxxxxxx
For additional commands, e-mail: java-user-help@xxxxxxxxxxxxxxxxx
|
|