OpenSearch/watcher/docs/reference/actions/index.asciidoc

74 lines
3.0 KiB
Plaintext

[[actions-index]]
==== Index Action
A watch <<actions, Action>> that enable you to index data in Elasticsearch.
See <<index-action-attributes>> for the supported attributes.
===== Configuring Index Actions
The following snippet shows a simple `index` action definition:
[source,json]
--------------------------------------------------
"actions" : {
"index_payload" : { <1>
"transform": { ... },<2>
"index" : {
"index" : "my-index", <3>
"doc_type" : "my-type" <4>
}
}
}
--------------------------------------------------
<1> The id of the action
<2> An optional <<transform, transform>> to transform the payload and prepare the data that should be indexed
<3> The elasticsearch index to store the data to
<4> The document type to store the data as
[[index-action-attributes]]
.Index Action Attributes
[options="header"]
|======
|Name |Required | Default | Description
| `index` | yes | - | The Elasticsearch index to
index into.
are supported
| `doc_type` | yes | - | The type of the document
the data will be indexed as.
| `execution_time_field` | no | _timestamp | The field that will store/index
the watch execution time. When
not set or when set to `_timestamp`,
the execution time will serve as
the document's
{ref}/mapping-timestamp-field.html[timestamp].
| `timeout` | no | 60s | The timeout for waiting for the index api call to return.
If no response is returned within this time, the index
action times out and fails. This setting overrides
the default internal index/bulk operations
<<default-internal-ops-timeouts, timeouts>>.
|======
[[anatomy-actions-index-multi-doc-support]]
===== Multi-Document Support
Like with all other actions, you can use a <<transform, transform>> to replace
the current execution context payload with another and by that change the document that
will end up indexed.
The index action plays well with transforms with its support for the special `_doc`
payload field.
When resolving the document to be indexed, the index action first looks up for a
`_doc` field in the payload. When not found, the payload is indexed as a single
document.
When a `_doc` field exists, if the field holds an object, it is extracted and indexed
as a single document. If the field holds an array of objects, each object is treated as
a document and the index aciton indexes all of them in a bulk.