Class RolloverRequest
- All Implemented Interfaces:
JsonpSerializable
The rollover API creates a new index for a data stream or index alias. The API behavior depends on the rollover target.
Roll over a data stream
If you roll over a data stream, the API creates a new write index for the stream. The stream's previous write index becomes a regular backing index. A rollover also increments the data stream's generation.
Roll over an index alias with a write index
TIP: Prior to Elasticsearch 7.9, you'd typically use an index alias with a write index to manage time series data. Data streams replace this functionality, require less maintenance, and automatically integrate with data tiers.
If an index alias points to multiple indices, one of the indices must be a
write index. The rollover API creates a new write index for the alias with
is_write_index
set to true
. The API also
sets is_write_index
to false
for the previous write
index.
Roll over an index alias with one index
If you roll over an index alias that points to only one index, the API creates a new index for the alias and removes the original index from the alias.
NOTE: A rollover creates a new index and is subject to the
wait_for_active_shards
setting.
Increment index names for an alias
When you roll over an index alias, you can specify a name for the new index.
If you don't specify a name and the current index ends with -
and a number, such as my-index-000001
or
my-index-3
, the new index name increments that number. For
example, if you roll over an alias with a current index of
my-index-000001
, the rollover creates a new index named
my-index-000002
. This number is always six characters and
zero-padded, regardless of the previous index's name.
If you use an index alias for time series data, you can use date math in the
index name to track the rollover date. For example, you can create an alias
that points to an index named <my-index-{now/d}-000001>
.
If you create the index on May 6, 2099, the index's name is
my-index-2099.05.06-000001
. If you roll over the alias on May 7,
2099, the new index's name is my-index-2099.05.07-000002
.
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class co.elastic.clients.elasticsearch._types.RequestBase
RequestBase.AbstractBuilder<BuilderT extends RequestBase.AbstractBuilder<BuilderT>>
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final JsonpDeserializer<RolloverRequest>
Json deserializer forRolloverRequest
static final Endpoint<RolloverRequest,
RolloverResponse, ErrorResponse> Endpoint "indices.rollover
". -
Method Summary
Modifier and TypeMethodDescriptionfinal String
alias()
Required - Name of the data stream or index alias to roll over.aliases()
Aliases for the target index.final RolloverConditions
Conditions for the rollover.final Boolean
dryRun()
Iftrue
, checks whether the current index satisfies the specified conditions but does not perform a rollover.final Boolean
lazy()
If set to true, the rollover action will only mark a data stream to signal that it needs to be rolled over at the next write.final TypeMapping
mappings()
Mapping for fields in the index.final Time
Period to wait for a connection to the master node.final String
newIndex()
Name of the index to create.static RolloverRequest
void
serialize
(jakarta.json.stream.JsonGenerator generator, JsonpMapper mapper) Serialize this object to JSON.protected void
serializeInternal
(jakarta.json.stream.JsonGenerator generator, JsonpMapper mapper) settings()
Configuration options for the index.protected static void
final Time
timeout()
Period to wait for a response.final WaitForActiveShards
The number of shard copies that must be active before proceeding with the operation.Methods inherited from class co.elastic.clients.elasticsearch._types.RequestBase
toString
-
Field Details
-
_DESERIALIZER
Json deserializer forRolloverRequest
-
_ENDPOINT
Endpoint "indices.rollover
".
-
-
Method Details
-
of
public static RolloverRequest of(Function<RolloverRequest.Builder, ObjectBuilder<RolloverRequest>> fn) -
alias
Required - Name of the data stream or index alias to roll over.API name:
alias
-
aliases
Aliases for the target index. Data streams do not support this parameter.API name:
aliases
-
conditions
Conditions for the rollover. If specified, Elasticsearch only performs the rollover if the current index satisfies these conditions. If this parameter is not specified, Elasticsearch performs the rollover unconditionally. If conditions are specified, at least one of them must be amax_*
condition. The index will rollover if anymax_*
condition is satisfied and allmin_*
conditions are satisfied.API name:
conditions
-
dryRun
Iftrue
, checks whether the current index satisfies the specified conditions but does not perform a rollover.API name:
dry_run
-
lazy
If set to true, the rollover action will only mark a data stream to signal that it needs to be rolled over at the next write. Only allowed on data streams.API name:
lazy
-
mappings
Mapping for fields in the index. If specified, this mapping can include field names, field data types, and mapping paramaters.API name:
mappings
-
masterTimeout
Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error.API name:
master_timeout
-
newIndex
Name of the index to create. Supports date math. Data streams do not support this parameter.API name:
new_index
-
settings
Configuration options for the index. Data streams do not support this parameter.API name:
settings
-
timeout
Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.API name:
timeout
-
waitForActiveShards
The number of shard copies that must be active before proceeding with the operation. Set to all or any positive integer up to the total number of shards in the index (number_of_replicas+1
).API name:
wait_for_active_shards
-
serialize
Serialize this object to JSON.- Specified by:
serialize
in interfaceJsonpSerializable
-
serializeInternal
-
setupRolloverRequestDeserializer
protected static void setupRolloverRequestDeserializer(ObjectDeserializer<RolloverRequest.Builder> op)
-