OpenSearch/docs/painless/painless-contexts/painless-score-context.asci...

59 lines
1.4 KiB
Plaintext

[[painless-score-context]]
=== Score context
Use a Painless script in a
{ref}/query-dsl-function-score-query.html[function score] to apply a new
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)::
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)`
`_score` (`double` read-only)::
The similarity score of the current document.
*Return*
`double`::
The score for the current document.
*API*
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.
[source,console]
--------------------------------------------------
GET /seats/_search
{
"query": {
"function_score": {
"query": {
"match": {
"sold": "false"
}
},
"script_score": {
"script": {
"source": "1.0 / doc['row'].value"
}
}
}
}
}
--------------------------------------------------
// TEST[setup:seats]