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. |