- Painless Scripting Language: other versions:
- Painless Guide
- Painless Language Specification
- Painless contexts
- Context example data
- Runtime fields context
- Ingest processor context
- Update context
- Update by query context
- Reindex context
- Sort context
- Similarity context
- Weight context
- Score context
- Field context
- Filter context
- Minimum should match context
- Metric aggregation initialization context
- Metric aggregation map context
- Metric aggregation combine context
- Metric aggregation reduce context
- Bucket script aggregation context
- Bucket selector aggregation context
- Analysis Predicate Context
- Watcher condition context
- Watcher transform context
- Painless API Reference
- Shared API
- Aggregation Selector API
- Aggs API
- Aggs Combine API
- Aggs Init API
- Aggs Map API
- Aggs Reduce API
- Analysis API
- Bucket Aggregation API
- Field API
- Filter API
- Ingest API
- Interval API
- Moving Function API
- Number Sort API
- Painless Test API
- Processor Conditional API
- Score API
- Script Heuristic API
- Similarity API
- Similarity Weight API
- String Sort API
- Template API
- Terms Set API
- Update API
- Watcher Condition API
- Watcher Transform API
- Xpack Template API
Similarity context
editSimilarity context
editUse a Painless script to create a similarity equation for scoring documents in a query.
Variables
-
weight
(float
, read-only) - The weight as calculated by a weight script
-
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.
-
doc.length
(long
, read-only) - The number of tokens the current document has in the current field. This is decoded from the stored norms and may be approximate for long fields
-
doc.freq
(long
, read-only) - The number of occurrences of the current term in the current document for the current field.
Note that the query
, field
, and term
variables are also available to the
weight context. They are more efficiently used
there, as they are constant for all documents.
For queries that contain multiple terms, the script is called once for each
term with that term’s calculated weight, and the results are summed. Note that some
terms might have a doc.freq
value of 0
on a document, for example if a query
uses synonyms.
Return
-
double
- The similarity score for the current document.
API
The standard Painless API is available.
Was this helpful?
Thank you for your feedback.