Toke
How does one sort the results of a collector as opposed to the entire
result set?
Do I need to implement my own sort algorithm or is there a way to do
this with Lucene? If so, which API functions do I need to call?
Thanks
Jamie
On 2014/06/23, 1:43 PM, Toke Eskildsen wrote:
On Mon, 2014-06-23 at 13:33 +0200, Jamie wrote:
While running a search over several million documents, the Yourkit
profiler reports a deadlock on the following method. Any ideas?
search worker <--- Frozen for at least 25m 37 sec
org.apache.lucene.util.PriorityQueue.downHeap()
My guess is that you are requesting several million documents as your
result set, instead of just the top 10 or top 100.
The heap implementation used by Lucene does not play well with large
result sets. Performance is bad and it allocates an excessive amount of
objects: Your machine is probably busy garbage collecting. The quick fix
is to allocate more memory for Java.
This is not a fault in the implementation as such, but rather the result
of using a heap for a large result set. If you really need a large
result set, I recommend you create your own collector that collects
everything the most compact way and perform sorting on the full
collection afterwards.
- Toke Eskildsen, State and University Library, Denmark
---------------------------------------------------------------------
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