I am trying to send request to ES from my tests. I applied mapping and inserted documents to ES index named 'gccount_test' from the same test. I have a very simple query maintained in a file named member
that I want to test.
{ "query" : { "match_all" : {} } }
My test method is
public void testMemberQuery(){ final Charset CHARSET = StandardCharsets.UTF_8 //load query byte[] bytes = Files.readAllBytes(Paths.get(MEMBER_QUERY_PATH)) String query = CHARSET.decode(ByteBuffer.wrap(bytes)).toString() println "QUERY => ${query}" SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder() searchSourceBuilder.query(query) SearchRequestBuilder searchRequestBuilder = client.prepareSearch(INDEX_NAME) //ClusterAdminClient adminClient = client.admin().cluster() //searchRequestBuilder.setTypes(Constants.ESTYPE_MEMBER) //println "CLUSTER => ${adminClient}" searchRequestBuilder.setSearchType(SearchType.QUERY_THEN_FETCH); searchRequestBuilder.internalBuilder(searchSourceBuilder) SearchResponse searchResponse = searchRequestBuilder.execute().actionGet() println "Search Response => ${searchResponse.toString()}" //blah blah }
Unfortunately, I get following error.
Failed to execute phase [query_fetch], total failure; shardFailures {[1][gccount][0]: SearchParseException[[gccount_test][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query_binary":"ewogICAgInF1ZXJ5IiA6IHsgCiAgICAgICAgICAibWF0Y2hfYWxsIiA6IHt9IAogICAgIH0KfQ=="}]]]; nested: QueryParsingException[[gccount_test] No query registered for [query]]; } org.elasticsearch.action.search.SearchPhaseExecutionException: Failed to execute phase [query_fetch], total failure; shardFailures {[1][gccount_test][0]: SearchParseException[[gccount_test][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{"query_binary":"ewogICAgInF1ZXJ5IiA6IHsgCiAgICAgICAgICAibWF0Y2hfYWxsIiA6IHt9IAogICAgIH0KfQ=="}]]]; nested: QueryParsingException[[gccount_test] No query registered for [query]]; } at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult(TransportSearchTypeAction.java:261) at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction$3.onFailure(TransportSearchTypeAction.java:214) at org.elasticsearch.search.action.SearchServiceTransportAction.sendExecuteFetch(SearchServiceTransportAction.java:246) at org.elasticsearch.action.search.type.TransportSearchQueryAndFetchAction$AsyncAction.sendExecuteFirstPhase(TransportSearchQueryAndFetchAction.java:75) at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:206) at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:193) at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction$2.run(TransportSearchTypeAction.java:179) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)
I am using elasticsearch 0.90.2 dependecy
[group: 'org.elasticsearch', name: 'elasticsearch', version: '0.90.2']
Same thing runs fine in real environment(snapshot below)
Is the problem with while loading query from file that caused it's malformation or what?
The exception basically means "There is no known query type called query
". I'm guessing that your client library is automatically inserting the top-level query
property, so your generated query actually looks like this:
{ "query" : { "query" : { "match_all" : {} } } }
If your client can dump the JSON representation of the query, that can help a lot in debugging.
Try removing the query
portion from your text file so that it is just the match_all
query, see if that works for you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With