[[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]