2018-07-02 17:44:36 -04:00
|
|
|
[[painless-sort-context]]
|
|
|
|
=== Sort context
|
|
|
|
|
|
|
|
Use a Painless script to
|
2020-07-23 13:44:47 -04:00
|
|
|
{ref}/sort-search-results.html[sort] the documents in a query.
|
2018-07-02 17:44:36 -04:00
|
|
|
|
|
|
|
*Variables*
|
|
|
|
|
|
|
|
`params` (`Map`, read-only)::
|
|
|
|
User-defined parameters passed in as part of the query.
|
|
|
|
|
|
|
|
`doc` (`Map`, read-only)::
|
2018-12-03 12:34:15 -05:00
|
|
|
Contains the fields of the current document. For single-valued fields,
|
|
|
|
the value can be accessed via `doc['fieldname'].value`. For multi-valued
|
|
|
|
fields, this returns the first value; other values can be accessed
|
|
|
|
via `doc['fieldname'].get(index)`
|
2018-07-02 17:44:36 -04:00
|
|
|
|
|
|
|
`_score` (`double` read-only)::
|
|
|
|
The similarity score of the current document.
|
|
|
|
|
|
|
|
*Return*
|
|
|
|
|
|
|
|
`double`::
|
|
|
|
The score for the specified document.
|
|
|
|
|
|
|
|
*API*
|
|
|
|
|
2018-12-03 12:34:15 -05:00
|
|
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
|
|
|
|
|
|
*Example*
|
|
|
|
|
|
|
|
To run this example, first follow the steps in
|
|
|
|
<<painless-context-examples, context examples>>.
|
|
|
|
|
|
|
|
To sort results by the length of the `theatre` field, submit the following query:
|
|
|
|
|
2019-09-09 13:38:14 -04:00
|
|
|
[source,console]
|
2018-12-03 12:34:15 -05:00
|
|
|
----
|
|
|
|
GET /_search
|
|
|
|
{
|
2020-07-17 11:31:37 -04:00
|
|
|
"query": {
|
|
|
|
"term": {
|
|
|
|
"sold": "true"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"sort": {
|
|
|
|
"_script": {
|
|
|
|
"type": "number",
|
|
|
|
"script": {
|
|
|
|
"lang": "painless",
|
|
|
|
"source": "doc['theatre'].value.length() * params.factor",
|
|
|
|
"params": {
|
|
|
|
"factor": 1.1
|
2018-12-03 12:34:15 -05:00
|
|
|
}
|
2020-07-17 11:31:37 -04:00
|
|
|
},
|
|
|
|
"order": "asc"
|
2018-12-03 12:34:15 -05:00
|
|
|
}
|
2020-07-17 11:31:37 -04:00
|
|
|
}
|
2018-12-03 12:34:15 -05:00
|
|
|
}
|
|
|
|
----
|
|
|
|
// TEST[setup:seats]
|