well besides looking at the timeout setting in java. that will let you wait longer for a response
how big is your cluster ,?
how big is your index?
what is your shared count?
what is your load average? howmany cpu's
what is your heap size and what is it corrently at
your query is pretty simple, you might want to use filters instead of queries as they will reduce the data faster and it becomes cached
i also suggest you find more fields to reduces thr amount of data you are processing
but if your not able to optimize the query your going to have to look at why your cluster is so slow.