Percolator match queries not working with http GET with body

Using Elasticsearch 2.3 - my JVM app server doesn't support sending a body with a http GET request. According to the percolator documentation:

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-percolate.html#_sample_usage

when I want to match documents against registered queries, I need to send my query in with the body of a GET http request. I need to find a workaround... is there another way to send in my document?

Also, the Head plugin doesn't work either... when I try to test my queries, Head basically sends my query as a queryparam in my url, which generates an error:

"type": "illegal_argument_exception",
"reason": "Nothing to percolate"

So, right now I'm dead in the water. I added all my percolator queries, and now I have no way to either test them (using Head) or access them from my server (web app).

The percolate api also support http post. Have you tried that?

Yes, POST seems to work... I didn't think so at first because I wasn't getting any results back and it took a very long time, I guess I need to tighten up my queries so they're not so expensive. It took 31 seconds to search 5000 queries. Does that seem right?

Depending of the complexity of the document you're percolating, your percolator queries and the resources of your cluster this is possible.

The upcoming ES 5 release can perhaps improve your performance: