[[painless-weight-context]]
=== Weight context

Use a Painless script to create a
{ref}/index-modules-similarity.html[weight] for use in a
<<painless-similarity-context, similarity script>>.  Weight is used to prevent
recalculation of constants that remain the same across documents.

*Variables*

`params` (`Map`, read-only)::
        User-defined parameters passed in as part of the query.

`query.boost` (`float`, read-only)::
        The boost value if provided by the query.  If this is not provided the
        value is `1.0f`.

`field.docCount` (`long`, read-only)::
        The number of documents that have a value for the current field.

`field.sumDocFreq` (`long`, read-only)::
        The sum of all terms that exist for the current field.  If this is not
        available the value is `-1`.

`field.sumTotalTermFreq` (`long`, read-only)::
        The sum of occurrences in the index for all the terms that exist in the
        current field.  If this is not available the value is `-1`.

`term.docFreq` (`long`, read-only)::
        The number of documents that contain the current term in the index.

`term.totalTermFreq` (`long`, read-only)::
        The total occurrences of the current term in the index.

*Return*

`double`::
        A scoring factor used across all documents.

*API*

The standard <<painless-api-reference, Painless API>> is available.