The explain api computes a score explanation for a query and a specific document. This can give useful feedback whether a document matches or didn’t match a specific query.
Note that a single index must be provided to the index
parameter.
Full query example:
GET /twitter/_explain/0 { "query" : { "match" : { "message" : "elasticsearch" } } }
This will yield the following result:
{ "_index":"twitter", "_type":"_doc", "_id":"0", "matched":true, "explanation":{ "value":1.6943597, "description":"weight(message:elasticsearch in 0) [PerFieldSimilarity], result of:", "details":[ { "value":1.6943597, "description":"score(freq=1.0), product of:", "details":[ { "value":2.2, "description":"boost", "details":[] }, { "value":1.3862944, "description":"idf, computed as log(1 + (N - n + 0.5) / (n + 0.5)) from:", "details":[ { "value":1, "description":"n, number of documents containing term", "details":[] }, { "value":5, "description":"N, total number of documents with field", "details":[] } ] }, { "value":0.5555555, "description":"tf, computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:", "details":[ { "value":1.0, "description":"freq, occurrences of term within document", "details":[] }, { "value":1.2, "description":"k1, term saturation parameter", "details":[] }, { "value":0.75, "description":"b, length normalization parameter", "details":[] }, { "value":3.0, "description":"dl, length of field", "details":[] }, { "value":5.4, "description":"avgdl, average length of field", "details":[] } ] } ] } ] } }
There is also a simpler way of specifying the query via the q
parameter. The specified q
parameter value is then parsed as if the
query_string
query was used. Example usage of the q
parameter in the
explain api:
GET /twitter/_explain/0?q=message:search
This will yield the same result as the previous request.
|
Set to |
|
Allows to control which stored fields to return as part of the document explained. |
|
Controls the routing in the case the routing was used during indexing. |
|
Same effect as setting the routing parameter. |
|
Controls on which shard the explain is executed. |
|
Allows the data of the request to be put in the query string of the url. |
|
The query string (maps to the query_string query). |
|
The default field to use when no field prefix is defined within the query. |
|
The analyzer name to be used when analyzing the query string. Defaults to the default search analyzer. |
|
Should wildcard and prefix queries be analyzed or not. Defaults to false. |
|
If set to true will cause format based failures (like providing text to a numeric field) to be ignored. Defaults to false. |
|
The default operator to be used, can be AND or OR. Defaults to OR. |