java.lang.Object
org.elasticsearch.cluster.routing.IndexRouting
- Direct Known Subclasses:
IndexRouting.ExtractFromSource
Generates the shard id for
(id, routing)
pairs.-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionvoid
Check if the _split index operation is allowed for an indexabstract void
collectSearchShards
(String routing, IntConsumer consumer) Collect all of the shard ids that *may* contain documents with the providedrouting
.abstract int
deleteShard
(String id, String routing) Called when deleting a document to generate the shard id that should contain a document with the provided_id
and (optional)_routing
.static IndexRouting
fromIndexMetadata
(IndexMetadata metadata) Build the routing fromIndexMetadata
.abstract int
Called when getting a document to generate the shard id that should contain a document with the provided_id
and (optional)_routing
.protected final int
hashToShardId
(int hash) Convert a hash generated from an(id, routing
) pair into a shard id.abstract int
indexShard
(String id, String routing, XContentType sourceType, BytesReference source) Called when indexing a document to generate the shard id that should contain a document with the provided parameters.void
postProcess
(IndexRequest indexRequest) Finalize the request after routing, incorporating data produced by the routing logic.void
preProcess
(IndexRequest indexRequest) Finalize the request before routing, with data needed for routing decisions.abstract int
updateShard
(String id, String routing) Called when updating a document to generate the shard id that should contain a document with the provided_id
and (optional)_routing
.
-
Field Details
-
indexName
-
-
Method Details
-
fromIndexMetadata
Build the routing fromIndexMetadata
. -
preProcess
Finalize the request before routing, with data needed for routing decisions. -
postProcess
Finalize the request after routing, incorporating data produced by the routing logic. -
indexShard
public abstract int indexShard(String id, @Nullable String routing, XContentType sourceType, BytesReference source) Called when indexing a document to generate the shard id that should contain a document with the provided parameters. -
updateShard
Called when updating a document to generate the shard id that should contain a document with the provided_id
and (optional)_routing
. -
deleteShard
Called when deleting a document to generate the shard id that should contain a document with the provided_id
and (optional)_routing
. -
getShard
Called when getting a document to generate the shard id that should contain a document with the provided_id
and (optional)_routing
. -
collectSearchShards
Collect all of the shard ids that *may* contain documents with the providedrouting
. Indices with arouting_partition
will collect more than one shard. Indices without a partition will collect the same shard id as would be returned bygetShard(java.lang.String, java.lang.String)
.Note: This is called for any search-like requests that have a routing specified but only if they have a routing specified. If they do not have a routing they just use all shards in the index.
-
hashToShardId
protected final int hashToShardId(int hash) Convert a hash generated from an(id, routing
) pair into a shard id. -
checkIndexSplitAllowed
public void checkIndexSplitAllowed()Check if the _split index operation is allowed for an index- Throws:
IllegalArgumentException
- if the operation is not allowed
-