Painless: Add Context Docs (#31190)
Adds documentation for each the variables and API available with each script context usable with a Painless script.
This commit is contained in:
parent
8f2feb8414
commit
631a53a0e1
|
@ -7,4 +7,6 @@ include::painless-getting-started.asciidoc[]
|
||||||
|
|
||||||
include::painless-lang-spec.asciidoc[]
|
include::painless-lang-spec.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-contexts.asciidoc[]
|
||||||
|
|
||||||
include::painless-api-reference.asciidoc[]
|
include::painless-api-reference.asciidoc[]
|
|
@ -0,0 +1,58 @@
|
||||||
|
[[painless-contexts]]
|
||||||
|
== Painless contexts
|
||||||
|
|
||||||
|
:es_version: https://www.elastic.co/guide/en/elasticsearch/reference/master
|
||||||
|
:xp_version: https://www.elastic.co/guide/en/x-pack/current
|
||||||
|
|
||||||
|
A Painless script is evaluated within a context. Each context has values that
|
||||||
|
are available as local variables, a whitelist that controls the available
|
||||||
|
classes, and the methods and fields within those classes (API), and
|
||||||
|
if and what type of value is returned.
|
||||||
|
|
||||||
|
A Painless script is typically executed within one of the contexts in the table
|
||||||
|
below. Note this is not necessarily a comprehensive list as custom plugins and
|
||||||
|
specialized code may define new ways to use a Painless script.
|
||||||
|
|
||||||
|
[options="header",cols="<1,<1,<1"]
|
||||||
|
|====
|
||||||
|
| Name | Painless Documentation
|
||||||
|
| Elasticsearch Documentation
|
||||||
|
| Update | <<painless-update-context, Painless Documentation>>
|
||||||
|
| {es_version}/docs-update.html[Elasticsearch Documentation]
|
||||||
|
| Update by query | <<painless-update-by-query-context, Painless Documentation>>
|
||||||
|
| {es_version}/docs-update-by-query.html[Elasticsearch Documentation]
|
||||||
|
| Reindex | <<painless-reindex-context, Painless Documentation>>
|
||||||
|
| {es_version}/docs-reindex.html[Elasticsearch Documentation]
|
||||||
|
| Sort | <<painless-sort-context, Painless Documentation>>
|
||||||
|
| {es_version}/search-request-sort.html[Elasticsearch Documentation]
|
||||||
|
| Similarity | <<painless-similarity-context, Painless Documentation>>
|
||||||
|
| {es_version}/index-modules-similarity.html[Elasticsearch Documentation]
|
||||||
|
| Weight | <<painless-similarity-context, Painless Documentation>>
|
||||||
|
| {es_version}/index-modules-similarity.html[Elasticsearch Documentation]
|
||||||
|
| Score | <<painless-score-context, Painless Documentation>>
|
||||||
|
| {es_version}/query-dsl-function-score-query.html[Elasticsearch Documentation]
|
||||||
|
| Field | <<painless-field-context, Painless Documentation>>
|
||||||
|
| {es_version}/search-request-script-fields.html[Elasticsearch Documentation]
|
||||||
|
| Filter | <<painless-filter-context, Painless Documentation>>
|
||||||
|
| {es_version}/query-dsl-script-query.html[Elasticsearch Documentation]
|
||||||
|
| Minimum should match | <<painless-min-should-match-context, Painless Documentation>>
|
||||||
|
| {es_version}/query-dsl-terms-set-query.html[Elasticsearch Documentation]
|
||||||
|
| Metric aggregation initialization | <<painless-metric-agg-init-context, Painless Documentation>>
|
||||||
|
| {es_version}/search-aggregations-metrics-scripted-metric-aggregation.html[Elasticsearch Documentation]
|
||||||
|
| Metric aggregation map | <<painless-metric-agg-map-context, Painless Documentation>>
|
||||||
|
| {es_version}/search-aggregations-metrics-scripted-metric-aggregation.html[Elasticsearch Documentation]
|
||||||
|
| Metric aggregation combine | <<painless-metric-agg-combine-context, Painless Documentation>>
|
||||||
|
| {es_version}/search-aggregations-metrics-scripted-metric-aggregation.html[Elasticsearch Documentation]
|
||||||
|
| Metric aggregation reduce | <<painless-metric-agg-reduce-context, Painless Documentation>>
|
||||||
|
| {es_version}/search-aggregations-metrics-scripted-metric-aggregation.html[Elasticsearch Documentation]
|
||||||
|
| Bucket aggregation | <<painless-bucket-agg-context, Painless Documentation>>
|
||||||
|
| {es_version}/search-aggregations-pipeline-bucket-script-aggregation.html[Elasticsearch Documentation]
|
||||||
|
| Ingest processor | <<painless-ingest-processor-context, Painless Documentation>>
|
||||||
|
| {es_version}/script-processor.html[Elasticsearch Documentation]
|
||||||
|
| Watcher condition | <<painless-watcher-condition-context, Painless Documentation>>
|
||||||
|
| {xp_version}/condition-script.html[Elasticsearch Documentation]
|
||||||
|
| Watcher transform | <<painless-watcher-transform-context, Painless Documentation>>
|
||||||
|
| {xp_version}/transform-script.html[Elasticsearch Documentation]
|
||||||
|
|====
|
||||||
|
|
||||||
|
include::painless-contexts/index.asciidoc[]
|
|
@ -0,0 +1,35 @@
|
||||||
|
include::painless-update-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-update-by-query-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-reindex-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-sort-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-similarity-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-weight-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-score-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-field-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-filter-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-min-should-match-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-metric-agg-init-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-metric-agg-map-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-metric-agg-combine-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-metric-agg-reduce-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-bucket-agg-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-ingest-processor-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-watcher-condition-context.asciidoc[]
|
||||||
|
|
||||||
|
include::painless-watcher-transform-context.asciidoc[]
|
|
@ -0,0 +1,21 @@
|
||||||
|
[[painless-bucket-agg-context]]
|
||||||
|
=== Bucket aggregation context
|
||||||
|
|
||||||
|
Use a Painless script in an
|
||||||
|
{es_version}/search-aggregations-pipeline-bucket-script-aggregation.html[bucket aggregation]
|
||||||
|
to calculate a value as a result in a bucket.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query. The parameters
|
||||||
|
include values defined as part of the `buckets_path`.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
numeric::
|
||||||
|
The calculated value as the result.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,31 @@
|
||||||
|
[[painless-field-context]]
|
||||||
|
=== Field context
|
||||||
|
|
||||||
|
Use a Painless script to create a
|
||||||
|
{es_version}/search-request-script-fields.html[script field] to return
|
||||||
|
a customized value for each document in the results of 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 specified document where each field is a
|
||||||
|
`List` of values.
|
||||||
|
|
||||||
|
{es_version}/mapping-source-field.html[`ctx['_source']`] (`Map`)::
|
||||||
|
Contains extracted JSON in a `Map` and `List` structure for the fields
|
||||||
|
existing in a stored document.
|
||||||
|
|
||||||
|
`_score` (`double` read-only)::
|
||||||
|
The original score of the specified document.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`Object`::
|
||||||
|
The customized value for each document.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,26 @@
|
||||||
|
[[painless-filter-context]]
|
||||||
|
=== Filter context
|
||||||
|
|
||||||
|
Use a Painless script as a {es_version}/query-dsl-script-query.html[filter] in a
|
||||||
|
query to include and exclude documents.
|
||||||
|
|
||||||
|
|
||||||
|
*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 where each field is a
|
||||||
|
`List` of values.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`boolean`::
|
||||||
|
Return `true` if the current document should be returned as a result of
|
||||||
|
the query, and `false` otherwise.
|
||||||
|
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,41 @@
|
||||||
|
[[painless-ingest-processor-context]]
|
||||||
|
=== Ingest processor context
|
||||||
|
|
||||||
|
Use a Painless script in an {es_version}/script-processor.html[ingest processor]
|
||||||
|
to modify documents upon insertion.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
{es_version}/mapping-index-field.html[`ctx['_index']`] (`String`)::
|
||||||
|
The name of the index.
|
||||||
|
|
||||||
|
{es_version}/mapping-type-field.html[`ctx['_type']`] (`String`)::
|
||||||
|
The type of document within an index.
|
||||||
|
|
||||||
|
`ctx` (`Map`)::
|
||||||
|
Contains extracted JSON in a `Map` and `List` structure for the fields
|
||||||
|
that are part of the document.
|
||||||
|
|
||||||
|
*Side Effects*
|
||||||
|
|
||||||
|
{es_version}/mapping-index-field.html[`ctx['_index']`]::
|
||||||
|
Modify this to change the destination index for the current document.
|
||||||
|
|
||||||
|
{es_version}/mapping-type-field.html[`ctx['_type']`]::
|
||||||
|
Modify this to change the type for the current document.
|
||||||
|
|
||||||
|
`ctx` (`Map`, read-only)::
|
||||||
|
Modify the values in the `Map/List` structure to add, modify, or delete
|
||||||
|
the fields of a document.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
void::
|
||||||
|
No expected return value.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,27 @@
|
||||||
|
[[painless-metric-agg-combine-context]]
|
||||||
|
=== Metric aggregation combine context
|
||||||
|
|
||||||
|
Use a Painless script to
|
||||||
|
{es_version}/search-aggregations-metrics-scripted-metric-aggregation.html[combine]
|
||||||
|
values for use in a scripted metric aggregation. A combine script is run once
|
||||||
|
per shard following a <<painless-metric-agg-map-context, map script>> and is
|
||||||
|
optional as part of a full metric aggregation.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
`params['_agg']` (`Map`)::
|
||||||
|
`Map` with values available from the prior map script.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`List`, `Map`, `String`, or primitive::
|
||||||
|
A value collected for use in a
|
||||||
|
<<painless-metric-agg-reduce-context, reduce script>>. If no reduce
|
||||||
|
script is specified, the value is used as part of the result.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,32 @@
|
||||||
|
[[painless-metric-agg-init-context]]
|
||||||
|
=== Metric aggregation initialization context
|
||||||
|
|
||||||
|
Use a Painless script to
|
||||||
|
{es_version}/search-aggregations-metrics-scripted-metric-aggregation.html[initialize]
|
||||||
|
values for use in a scripted metric aggregation. An initialization script is
|
||||||
|
run prior to document collection once per shard and is optional as part of the
|
||||||
|
full metric aggregation.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
`params['_agg']` (`Map`)::
|
||||||
|
Empty `Map` used to add values for use in a
|
||||||
|
<<painless-metric-agg-map-context, map script>>.
|
||||||
|
|
||||||
|
*Side Effects*
|
||||||
|
|
||||||
|
`params['_agg']` (`Map`)::
|
||||||
|
Add values to this `Map` to for use in a map. Additional values must
|
||||||
|
be of the type `Map`, `List`, `String` or primitive.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`void`::
|
||||||
|
No expected return value.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,47 @@
|
||||||
|
[[painless-metric-agg-map-context]]
|
||||||
|
=== Metric aggregation map context
|
||||||
|
|
||||||
|
Use a Painless script to
|
||||||
|
{es_version}/search-aggregations-metrics-scripted-metric-aggregation.html[map]
|
||||||
|
values for use in a scripted metric aggregation. A map script is run once per
|
||||||
|
collected document following an optional
|
||||||
|
<<painless-metric-agg-init-context, initialization script>> and is required as
|
||||||
|
part of a full metric aggregation.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
`params['_agg']` (`Map`)::
|
||||||
|
`Map` used to add values for processing in a
|
||||||
|
<<painless-metric-agg-map-context, combine script>> or returned
|
||||||
|
directly.
|
||||||
|
|
||||||
|
`doc` (`Map`, read-only)::
|
||||||
|
Contains the fields of the current document where each field is a
|
||||||
|
`List` of values.
|
||||||
|
|
||||||
|
`_score` (`double` read-only)::
|
||||||
|
The similarity score of the current document.
|
||||||
|
|
||||||
|
*Side Effects*
|
||||||
|
|
||||||
|
`params['_agg']` (`Map`)::
|
||||||
|
Use this `Map` to add values for processing in a combine script.
|
||||||
|
Additional values must be of the type `Map`, `List`, `String` or
|
||||||
|
primitive. If an initialization script is provided as part the
|
||||||
|
aggregation then values added from the initialization script are
|
||||||
|
available as well. If no combine script is specified, values must be
|
||||||
|
directly stored in `_agg`. If no combine script and no
|
||||||
|
<<painless-metric-agg-reduce-context, reduce script>> are specified, the
|
||||||
|
values are used as the result.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`void`::
|
||||||
|
No expected return value.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,28 @@
|
||||||
|
[[painless-metric-agg-reduce-context]]
|
||||||
|
=== Metric aggregation reduce context
|
||||||
|
|
||||||
|
Use a Painless script to
|
||||||
|
{es_version}/search-aggregations-metrics-scripted-metric-aggregation.html[reduce]
|
||||||
|
values to produce the result of a scripted metric aggregation. A reduce script
|
||||||
|
is run once on the coordinating node following a
|
||||||
|
<<painless-metric-agg-combine-context, combine script>> (or a
|
||||||
|
<<painless-metric-agg-map-context, map script>> if no combine script is
|
||||||
|
specified) and is optional as part of a full metric aggregation.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
`params['_aggs']` (`Map`)::
|
||||||
|
`Map` with values available from the prior combine script (or a map
|
||||||
|
script if no combine script is specified).
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`List`, `Map`, `String`, or primitive::
|
||||||
|
A value used as the result.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,28 @@
|
||||||
|
[[painless-min-should-match-context]]
|
||||||
|
=== Minimum should match context
|
||||||
|
|
||||||
|
Use a Painless script to specify the
|
||||||
|
{es_version}/query-dsl-terms-set-query.html[minimum] number of terms that a
|
||||||
|
specified field needs to match with for a document to be part of the query
|
||||||
|
results.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
`params['num_terms']` (`int`, read-only)::
|
||||||
|
The number of terms specified to match with.
|
||||||
|
|
||||||
|
`doc` (`Map`, read-only)::
|
||||||
|
Contains the fields of the current document where each field is a
|
||||||
|
`List` of values.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`int`::
|
||||||
|
The minimum number of terms required to match the current document.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,68 @@
|
||||||
|
[[painless-reindex-context]]
|
||||||
|
=== Reindex context
|
||||||
|
|
||||||
|
Use a Painless script in a {es_version}/docs-reindex.html[reindex] operation to
|
||||||
|
add, modify, or delete fields within each document in an original index as its
|
||||||
|
reindexed into a target index.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
`ctx['_op']` (`String`)::
|
||||||
|
The name of the operation.
|
||||||
|
|
||||||
|
{es_version}/mapping-routing-field.html[`ctx['_routing']`] (`String`)::
|
||||||
|
The value used to select a shard for document storage.
|
||||||
|
|
||||||
|
{es_version}/mapping-index-field.html[`ctx['_index']`] (`String`)::
|
||||||
|
The name of the index.
|
||||||
|
|
||||||
|
{es_version}/mapping-type-field.html[`ctx['_type']`] (`String`)::
|
||||||
|
The type of document within an index.
|
||||||
|
|
||||||
|
{es_version}/mapping-id-field.html[`ctx['_id']`] (`int`, read-only)::
|
||||||
|
The unique document id.
|
||||||
|
|
||||||
|
`ctx['_version']` (`int`)::
|
||||||
|
The current version of the document.
|
||||||
|
|
||||||
|
{es_version}/mapping-source-field.html[`ctx['_source']`] (`Map`)::
|
||||||
|
Contains extracted JSON in a `Map` and `List` structure for the fields
|
||||||
|
existing in a stored document.
|
||||||
|
|
||||||
|
*Side Effects*
|
||||||
|
|
||||||
|
`ctx['_op']`::
|
||||||
|
Use the default of `index` to update a document. Set to `none` to
|
||||||
|
specify no operation or `delete` to delete the current document from
|
||||||
|
the index.
|
||||||
|
|
||||||
|
{es_version}/mapping-routing-field.html[`ctx['_routing']`]::
|
||||||
|
Modify this to change the routing value for the current document.
|
||||||
|
|
||||||
|
{es_version}/mapping-index-field.html[`ctx['_index']`]::
|
||||||
|
Modify this to change the destination index for the current document.
|
||||||
|
|
||||||
|
{es_version}/mapping-type-field.html[`ctx['_type']`]::
|
||||||
|
Modify this to change the type for the current document.
|
||||||
|
|
||||||
|
{es_version}/mapping-id-field.html[`ctx['_id']`]::
|
||||||
|
Modify this to change the id for the current document.
|
||||||
|
|
||||||
|
`ctx['_version']` (`int`)::
|
||||||
|
Modify this to modify the version for the current document.
|
||||||
|
|
||||||
|
{es_version}/mapping-source-field.html[`ctx['_source']`]::
|
||||||
|
Modify the values in the `Map/List` structure to add, modify, or delete
|
||||||
|
the fields of a document.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`void`::
|
||||||
|
No expected return value.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,27 @@
|
||||||
|
[[painless-score-context]]
|
||||||
|
=== Score context
|
||||||
|
|
||||||
|
Use a Painless script in a
|
||||||
|
{es_version}/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 where each field is a
|
||||||
|
`List` of values.
|
||||||
|
|
||||||
|
`_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.
|
|
@ -0,0 +1,53 @@
|
||||||
|
[[painless-similarity-context]]
|
||||||
|
=== Similarity context
|
||||||
|
|
||||||
|
Use a Painless script to create a
|
||||||
|
{es_version}/index-modules-similarity.html[similarity] equation for scoring
|
||||||
|
documents in a query.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in at query-time.
|
||||||
|
|
||||||
|
`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.
|
||||||
|
|
||||||
|
`doc.freq` (`long`, read-only)::
|
||||||
|
The number of occurrences of the current term in the current
|
||||||
|
document for the current field.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`double`::
|
||||||
|
The similarity score for the current document.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,26 @@
|
||||||
|
[[painless-sort-context]]
|
||||||
|
=== Sort context
|
||||||
|
|
||||||
|
Use a Painless script to
|
||||||
|
{es_version}/search-request-sort.html[sort] the documents in 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 where each field is a
|
||||||
|
`List` of values.
|
||||||
|
|
||||||
|
`_score` (`double` read-only)::
|
||||||
|
The similarity score of the current document.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`double`::
|
||||||
|
The score for the specified document.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,54 @@
|
||||||
|
[[painless-update-by-query-context]]
|
||||||
|
=== Update by query context
|
||||||
|
|
||||||
|
Use a Painless script in an
|
||||||
|
{es_version}/docs-update-by-query.html[update by query] operation to add,
|
||||||
|
modify, or delete fields within each of a set of documents collected as the
|
||||||
|
result of query.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
`ctx['_op']` (`String`)::
|
||||||
|
The name of the operation.
|
||||||
|
|
||||||
|
{es_version}/mapping-routing-field.html[`ctx['_routing']`] (`String`, read-only)::
|
||||||
|
The value used to select a shard for document storage.
|
||||||
|
|
||||||
|
{es_version}/mapping-index-field.html[`ctx['_index']`] (`String`, read-only)::
|
||||||
|
The name of the index.
|
||||||
|
|
||||||
|
{es_version}/mapping-type-field.html[`ctx['_type']`] (`String`, read-only)::
|
||||||
|
The type of document within an index.
|
||||||
|
|
||||||
|
{es_version}/mapping-id-field.html[`ctx['_id']`] (`int`, read-only)::
|
||||||
|
The unique document id.
|
||||||
|
|
||||||
|
`ctx['_version']` (`int`, read-only)::
|
||||||
|
The current version of the document.
|
||||||
|
|
||||||
|
{es_version}/mapping-source-field.html[`ctx['_source']`] (`Map`)::
|
||||||
|
Contains extracted JSON in a `Map` and `List` structure for the fields
|
||||||
|
existing in a stored document.
|
||||||
|
|
||||||
|
*Side Effects*
|
||||||
|
|
||||||
|
`ctx['_op']`::
|
||||||
|
Use the default of `index` to update a document. Set to `none` to
|
||||||
|
specify no operation or `delete` to delete the current document from
|
||||||
|
the index.
|
||||||
|
|
||||||
|
{es_version}/mapping-source-field.html[`ctx['_source']`]::
|
||||||
|
Modify the values in the `Map/List` structure to add, modify, or delete
|
||||||
|
the fields of a document.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`void`::
|
||||||
|
No expected return value.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,55 @@
|
||||||
|
[[painless-update-context]]
|
||||||
|
=== Update context
|
||||||
|
|
||||||
|
Use a Painless script in an {es_version}/docs-update.html[update] operation to
|
||||||
|
add, modify, or delete fields within a single document.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
`ctx['_op']` (`String`)::
|
||||||
|
The name of the operation.
|
||||||
|
|
||||||
|
{es_version}/mapping-routing-field.html[`ctx['_routing']`] (`String`, read-only)::
|
||||||
|
The value used to select a shard for document storage.
|
||||||
|
|
||||||
|
{es_version}/mapping-index-field.html[`ctx['_index']`] (`String`, read-only)::
|
||||||
|
The name of the index.
|
||||||
|
|
||||||
|
{es_version}/mapping-type-field.html[`ctx['_type']`] (`String`, read-only)::
|
||||||
|
The type of document within an index.
|
||||||
|
|
||||||
|
{es_version}/mapping-id-field.html[`ctx['_id']`] (`int`, read-only)::
|
||||||
|
The unique document id.
|
||||||
|
|
||||||
|
`ctx['_version']` (`int`, read-only)::
|
||||||
|
The current version of the document.
|
||||||
|
|
||||||
|
`ctx['_now']` (`long`, read-only)::
|
||||||
|
The current timestamp in milliseconds.
|
||||||
|
|
||||||
|
{es_version}/mapping-source-field.html[`ctx['_source']`] (`Map`)::
|
||||||
|
Contains extracted JSON in a `Map` and `List` structure for the fields
|
||||||
|
existing in a stored document.
|
||||||
|
|
||||||
|
*Side Effects*
|
||||||
|
|
||||||
|
`ctx['_op']`::
|
||||||
|
Use the default of `index` to update a document. Set to `none` to
|
||||||
|
specify no operation or `delete` to delete the current document from
|
||||||
|
the index.
|
||||||
|
|
||||||
|
{es_version}/mapping-source-field.html[`ctx['_source']`]::
|
||||||
|
Modify the values in the `Map/List` structure to add, modify, or delete
|
||||||
|
the fields of a document.
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`void`::
|
||||||
|
No expected return value.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,38 @@
|
||||||
|
[[painless-watcher-condition-context]]
|
||||||
|
=== Watcher condition context
|
||||||
|
|
||||||
|
Use a Painless script as a {xp_version}/condition-script.html[watcher condition]
|
||||||
|
to test if a response is necessary.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
`ctx['watch_id']` (`String`, read-only)::
|
||||||
|
The id of the watch.
|
||||||
|
|
||||||
|
`ctx['execution_time']` (`DateTime`, read-only)::
|
||||||
|
The start time for the watch.
|
||||||
|
|
||||||
|
`ctx['trigger']['scheduled_time']` (`DateTime`, read-only)::
|
||||||
|
The scheduled trigger time for the watch.
|
||||||
|
|
||||||
|
`ctx['trigger']['triggered_time']` (`DateTime`, read-only)::
|
||||||
|
The actual trigger time for the watch.
|
||||||
|
|
||||||
|
`ctx['metadata']` (`Map`, read-only)::
|
||||||
|
Any metadata associated with the watch.
|
||||||
|
|
||||||
|
`ctx['payload']` (`Map`, read-only)::
|
||||||
|
The accessible watch data based upon the
|
||||||
|
{xp_version}/input.html[watch input].
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`boolean`::
|
||||||
|
Expects `true` if the condition is met, and `false` otherwise.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,39 @@
|
||||||
|
[[painless-watcher-transform-context]]
|
||||||
|
=== Watcher transform context
|
||||||
|
|
||||||
|
Use a Painless script to {xp_version}/transform-script.html[transform] watch
|
||||||
|
data into a new payload for use in a response to a condition.
|
||||||
|
|
||||||
|
*Variables*
|
||||||
|
|
||||||
|
`params` (`Map`, read-only)::
|
||||||
|
User-defined parameters passed in as part of the query.
|
||||||
|
|
||||||
|
`ctx['watch_id']` (`String`, read-only)::
|
||||||
|
The id of the watch.
|
||||||
|
|
||||||
|
`ctx['execution_time']` (`DateTime`, read-only)::
|
||||||
|
The start time for the watch.
|
||||||
|
|
||||||
|
`ctx['trigger']['scheduled_time']` (`DateTime`, read-only)::
|
||||||
|
The scheduled trigger time for the watch.
|
||||||
|
|
||||||
|
`ctx['trigger']['triggered_time']` (`DateTime`, read-only)::
|
||||||
|
The actual trigger time for the watch.
|
||||||
|
|
||||||
|
`ctx['metadata']` (`Map`, read-only)::
|
||||||
|
Any metadata associated with the watch.
|
||||||
|
|
||||||
|
`ctx['payload']` (`Map`, read-only)::
|
||||||
|
The accessible watch data based upon the
|
||||||
|
{xp_version}/input.html[watch input].
|
||||||
|
|
||||||
|
|
||||||
|
*Return*
|
||||||
|
|
||||||
|
`Object`::
|
||||||
|
The new payload.
|
||||||
|
|
||||||
|
*API*
|
||||||
|
|
||||||
|
The standard <<painless-api-reference, Painless API>> is available.
|
|
@ -0,0 +1,42 @@
|
||||||
|
[[painless-weight-context]]
|
||||||
|
=== Weight context
|
||||||
|
|
||||||
|
Use a Painless script to create a
|
||||||
|
{es_version}/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.
|
|
@ -184,7 +184,7 @@ brace_access: '[' expression ']'
|
||||||
store `def` to `x`
|
store `def` to `x`
|
||||||
<5> declare `def y`;
|
<5> declare `def y`;
|
||||||
implicit cast `int 1` to `def` -> `def`;
|
implicit cast `int 1` to `def` -> `def`;
|
||||||
store `def ` to `y`;
|
store `def` to `y`;
|
||||||
<6> declare `int i`;
|
<6> declare `int i`;
|
||||||
load from `d` -> `def`
|
load from `d` -> `def`
|
||||||
implicit cast `def` to `1-d int array reference`
|
implicit cast `def` to `1-d int array reference`
|
||||||
|
|
Loading…
Reference in New Issue