2018-07-02 17:44:36 -04:00
|
|
|
[[painless-score-context]]
|
|
|
|
=== Score context
|
|
|
|
|
|
|
|
Use a Painless script in a
|
2018-07-25 13:59:25 -04:00
|
|
|
{ref}/query-dsl-function-score-query.html[function score] to apply a new
|
2018-07-02 17:44:36 -04:00
|
|
|
score to documents returned from a query.
|
|
|
|
|
|
|
|
*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 current 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>>.
|
|
|
|
|
|
|
|
The following query finds all unsold seats, with lower 'row' values
|
|
|
|
scored higher.
|
|
|
|
|
2019-09-09 13:38:14 -04:00
|
|
|
[source,console]
|
2018-12-03 12:34:15 -05:00
|
|
|
--------------------------------------------------
|
|
|
|
GET /seats/_search
|
|
|
|
{
|
2020-07-17 11:31:37 -04:00
|
|
|
"query": {
|
|
|
|
"function_score": {
|
|
|
|
"query": {
|
|
|
|
"match": {
|
|
|
|
"sold": "false"
|
2018-12-03 12:34:15 -05:00
|
|
|
}
|
2020-07-17 11:31:37 -04:00
|
|
|
},
|
|
|
|
"script_score": {
|
|
|
|
"script": {
|
|
|
|
"source": "1.0 / doc['row'].value"
|
|
|
|
}
|
|
|
|
}
|
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]
|