By passing Integer.MAX_VALUE you are requesting Lucene to allocate a priority 
queue for collecting results with that size, this OOMs. With Lucene if you are 
using TopDocs, the idea is to only get a limited amount of Top-Ranking 
documents to display search results. The user is not interested in the 2 
million's result page, so pass a small number of top hits.

To simply count all hits like you seem to do, there is a separate collector 
available: http://goo.gl/XsPVR

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: u...@thetaphi.de

> -----Original Message-----
> From: Benson Margulies [mailto:bimargul...@gmail.com]
> Sent: Sunday, February 19, 2012 3:22 PM
> To: java-user@lucene.apache.org
> Subject: Counting all the hits with parallel searching
> 
> If I have a lot of segments, and an executor service in my searcher, the
> following runs out of memory instantly, building giant heaps. Is there another
> way to express this? Should I file a JIRA that the parallel code should have 
> some
> graceful behavior?
> 
> int longestMentionFreq = searcher.search(longestMentionQuery, filter,
> Integer.MAX_VALUE).totalHits + 1;
> 
> ---------------------------------------------------------------------
> 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

Reply via email to