It looks like we don't take care of adapting the payload to what explain() accepts (i.e. only the "query" part), and Elasticsearch returns a parsing error.
13:54:16,163 (Hibernate Search: Elasticsearch transport thread - 3) DEBUG request:121 - ES client issued a ResponseException - not necessarily a problem
org.elasticsearch.client.ResponseException: method [GET], host [http://localhost:9200], URI [/indexname/_explain/1], status line [HTTP/1.1 400 Bad Request]
{"error":{"root_cause":[{"type":"parsing_exception","reason":"request does not support [stored_fields]","line":1,"col":35}],"type":"parsing_exception","reason":"request does not support [stored_fields]","line":1,"col":35},"status":400}
at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:253)
at org.elasticsearch.client.RestClient.access$900(RestClient.java:95)
at org.elasticsearch.client.RestClient$1.completed(RestClient.java:298)
at org.elasticsearch.client.RestClient$1.completed(RestClient.java:294)
at org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:122)
at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseCompleted(DefaultClientExchangeHandlerImpl.java:181)
at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.processResponse(HttpAsyncRequestExecutor.java:448)
at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:338)
at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:265)
at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81)
at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39)
at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114)
at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591)
at java.lang.Thread.run(Thread.java:748)
13:54:16,164 (Hibernate Search: Elasticsearch transport thread - 3) TRACE request:205 - HSEARCH400093: Executed Elasticsearch HTTP GET request to path '/indexname/_explain/1' with query parameters {} and 1 objects in payload in 2ms. Response had status 400 'Bad Request'. Request body: <
{
"query": {
"ids": {
"values": [
"1"
]
}
},
"stored_fields": "__HSEARCH_index"
}
>. Response body: <
{
"error": {
"root_cause": [
{
"type": "parsing_exception",
"reason": "request does not support [stored_fields]",
"line": 1,
"col": 35
}
],
"type": "parsing_exception",
"reason": "request does not support [stored_fields]",
"line": 1,
"col": 35
},
"status": 400
}
>