﻿---
title: Score context
description: Use a Painless script in a function score to apply a new score to documents returned from a query. Variables Return API Both the standard Painless API...
url: https://www.elastic.co/elastic/docs-builder/docs/2485/reference/scripting-languages/painless/painless-score-context
products:
  - Painless
---

# Score context
Use a Painless script in a [function score](https://www.elastic.co/elastic/docs-builder/docs/2485/reference/query-languages/query-dsl/query-dsl-function-score-query) to apply a new score to documents returned from a query.
**Variables**
<definitions>
  <definition term="params (Map, read-only)">
    User-defined parameters passed in as part of the query.
  </definition>
  <definition term="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)`
  </definition>
  <definition term="_score (double read-only)">
    The similarity score of the current document.
  </definition>
</definitions>

**Return**
<definitions>
  <definition term="double">
    The score for the current document.
  </definition>
</definitions>

**API**
Both the standard [Painless API](https://www.elastic.co/guide/en/elasticsearch/painless/current/painless-api-reference-shared.html) and [Specialized Score API](https://www.elastic.co/guide/en/elasticsearch/painless/current/painless-api-reference-score.html) are available.
**Example**
To run this example, first follow the steps in [context examples](https://www.elastic.co/elastic/docs-builder/docs/2485/reference/scripting-languages/painless/painless-context-examples).
The following query finds all unsold seats, with lower *row* values scored higher.
```json

{
  "query": {
    "function_score": {
      "query": {
        "match": {
          "sold": "false"
        }
      },
      "script_score": {
        "script": {
          "source": "1.0 / doc['row'].value"
        }
      }
    }
  }
}
```