Search.queue size too high for a single query

After doing some monitoring using _cat/thread_pool, I've been noticing that some of my search queries spawn a huge number of entries in the search.queue, which leads to a bunch of rejected searches.

The numbers in seems to be correct (they seem to be the number of search queries that I'm executing), but what is the number search.queue? Why is it so big (~800) for a single query?

Is the number of elements in the queue larger for queries with more indices or that need to hit more shards?

How can I change my queries to reduce this number?

(I'm using elasticsearch 2.2.0)


What does the query look like?
How are you issuing it to the cluster?

I've seen this happen with multiple queries, but here's one such example:

(This query is executed on multiple indices using a wildcard).

The queries are being sent to the cluster via the elastic4s scala client (which is just a wrapper to the java client, AFAIK).

This could happen if you are either querying many indices, or if your indices have too many shards.