123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- [[search-explain]]
- == Explain API
- 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.
- The `index` and `type` parameters expect a single index and a single
- type respectively.
- [float]
- === Usage
- Full query example:
- [source,js]
- --------------------------------------------------
- GET /twitter/_doc/0/_explain
- {
- "query" : {
- "match" : { "message" : "elasticsearch" }
- }
- }
- --------------------------------------------------
- // CONSOLE
- // TEST[setup:twitter]
- This will yield the following result:
- [source,js]
- --------------------------------------------------
- {
- "_index": "twitter",
- "_type": "_doc",
- "_id": "0",
- "matched": true,
- "explanation": {
- "value": 1.6943599,
- "description": "weight(message:elasticsearch in 0) [PerFieldSimilarity], result of:",
- "details": [
- {
- "value": 1.6943599,
- "description": "score(doc=0,freq=1.0 = termFreq=1.0\n), product of:",
- "details": [
- {
- "value": 1.3862944,
- "description": "idf, computed as log(1 + (docCount - docFreq + 0.5) / (docFreq + 0.5)) from:",
- "details": [
- {
- "value": 1.0,
- "description": "docFreq",
- "details": []
- },
- {
- "value": 5.0,
- "description": "docCount",
- "details": []
- }
- ]
- },
- {
- "value": 1.2222223,
- "description": "tfNorm, computed as (freq * (k1 + 1)) / (freq + k1 * (1 - b + b * fieldLength / avgFieldLength)) from:",
- "details": [
- {
- "value": 1.0,
- "description": "termFreq=1.0",
- "details": []
- },
- {
- "value": 1.2,
- "description": "parameter k1",
- "details": []
- },
- {
- "value": 0.75,
- "description": "parameter b",
- "details": []
- },
- {
- "value": 5.4,
- "description": "avgFieldLength",
- "details": []
- },
- {
- "value": 3.0,
- "description": "fieldLength",
- "details": []
- }
- ]
- }
- ]
- }
- ]
- }
- }
- --------------------------------------------------
- // TESTRESPONSE
- 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:
- [source,js]
- --------------------------------------------------
- GET /twitter/_doc/0/_explain?q=message:search
- --------------------------------------------------
- // CONSOLE
- // TEST[setup:twitter]
- This will yield the same result as the previous request.
- [float]
- === All parameters:
- [horizontal]
- `_source`::
- Set to `true` to retrieve the `_source` of the document explained. You can also
- retrieve part of the document by using `_source_include` & `_source_exclude` (see <<get-source-filtering,Get API>> for more details)
- `stored_fields`::
- Allows to control which stored fields to return as part of the
- document explained.
- `routing`::
- Controls the routing in the case the routing was used
- during indexing.
- `parent`::
- Same effect as setting the routing parameter.
- `preference`::
- Controls on which shard the explain is executed.
- `source`::
- Allows the data of the request to be put in the query
- string of the url.
- `q`::
- The query string (maps to the query_string query).
- `df`::
- The default field to use when no field prefix is defined within
- the query.
- `analyzer`::
- The analyzer name to be used when analyzing the query
- string. Defaults to the default search analyzer.
- `analyze_wildcard`::
- Should wildcard and prefix queries be analyzed or
- not. Defaults to false.
- `lenient`::
- If set to true will cause format based failures (like
- providing text to a numeric field) to be ignored. Defaults to false.
- `default_operator`::
- The default operator to be used, can be AND or
- OR. Defaults to OR.
|