Class IndexMetadata
java.lang.Object
org.elasticsearch.cluster.metadata.IndexMetadata
- All Implemented Interfaces:
Diffable<IndexMetadata>
,Writeable
,org.elasticsearch.common.xcontent.ToXContent
,org.elasticsearch.common.xcontent.ToXContentFragment
public class IndexMetadata extends java.lang.Object implements Diffable<IndexMetadata>, org.elasticsearch.common.xcontent.ToXContentFragment
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
IndexMetadata.APIBlock
static class
IndexMetadata.Builder
static class
IndexMetadata.State
Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent
org.elasticsearch.common.xcontent.ToXContent.DelegatingMapParams, org.elasticsearch.common.xcontent.ToXContent.MapParams, org.elasticsearch.common.xcontent.ToXContent.Params
Nested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V>
-
Field Summary
-
Method Summary
Modifier and Type Method Description static Settings
addHumanReadableSettings(Settings settings)
Adds human readable version and creation date settings.static IndexMetadata.Builder
builder(java.lang.String index)
static IndexMetadata.Builder
builder(IndexMetadata indexMetadata)
MappingMetadata
defaultMapping()
Get the default mapping.Diff<IndexMetadata>
diff(IndexMetadata previousState)
Returns serializable object representing differences between this and previousStateboolean
equals(java.lang.Object o)
DiscoveryNodeFilters
excludeFilters()
static IndexMetadata
fromXContent(org.elasticsearch.common.xcontent.XContentParser parser)
ImmutableOpenMap<java.lang.String,AliasMetadata>
getAliases()
long
getAliasesVersion()
long
getCreationDate()
Version
getCreationVersion()
Return theVersion
on which this index has been created.java.util.Map<java.lang.String,java.lang.String>
getCustomData(java.lang.String key)
Index
getIndex()
java.lang.String
getIndexUUID()
DiscoveryNodeFilters
getInitialRecoveryFilters()
ImmutableOpenIntMap<java.util.Set<java.lang.String>>
getInSyncAllocationIds()
ImmutableOpenMap<java.lang.String,MappingMetadata>
getMappings()
Deprecated.Usemapping()
instead now that indices have a single typelong
getMappingVersion()
int
getNumberOfReplicas()
int
getNumberOfShards()
Index
getResizeSourceIndex()
ImmutableOpenMap<java.lang.String,RolloverInfo>
getRolloverInfos()
int
getRoutingFactor()
Returns the routing factor for this index.static int
getRoutingFactor(int sourceNumberOfShards, int targetNumberOfShards)
Returns the routing factor for and shrunk index with the given number of target shards.int
getRoutingNumShards()
Returns the number of shards that should be used for routing.int
getRoutingPartitionSize()
Settings
getSettings()
long
getSettingsVersion()
IndexMetadata.State
getState()
int
getTotalNumberOfShards()
Version
getUpgradedVersion()
Return theVersion
on which this index has been upgraded.long
getVersion()
ActiveShardCount
getWaitForActiveShards()
Returns the configuredSETTING_WAIT_FOR_ACTIVE_SHARDS
, which defaults to an active shard count of 1 if not specified.int
hashCode()
DiscoveryNodeFilters
includeFilters()
java.util.Set<java.lang.String>
inSyncAllocationIds(int shardId)
boolean
isRoutingPartitionedIndex()
boolean
isSameUUID(java.lang.String otherUUID)
Test whether the current index UUID is the same as the given one.boolean
isSystem()
MappingMetadata
mapping()
Return the concrete mapping for this index ornull
if this index has no mappings at all.MappingMetadata
mappingOrDefault()
Sometimes, the default mapping exists and an actual mapping is not created yet (introduced), in this case, we want to return the default mapping in case it has some default mapping definitions.static int
parseIndexNameCounter(java.lang.String indexName)
Parses the number from the rolled over index name.long
primaryTerm(int shardId)
The term of the current selected primary.static Diff<IndexMetadata>
readDiffFrom(StreamInput in)
static IndexMetadata
readFrom(StreamInput in)
DiscoveryNodeFilters
requireFilters()
static ShardId
selectCloneShard(int shardId, IndexMetadata sourceIndexMetadata, int numTargetShards)
Returns the source shard ID to clone the given target shard offstatic java.util.Set<ShardId>
selectRecoverFromShards(int shardId, IndexMetadata sourceIndexMetadata, int numTargetShards)
Selects the source shards for a local shard recovery.static java.util.Set<ShardId>
selectShrinkShards(int shardId, IndexMetadata sourceIndexMetadata, int numTargetShards)
Returns the source shard ids to shrink into the given shard id.static ShardId
selectSplitShard(int shardId, IndexMetadata sourceIndexMetadata, int numTargetShards)
Returns the source shard ID to split the given target shard offorg.elasticsearch.common.xcontent.XContentBuilder
toXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params)
void
writeTo(StreamOutput out)
Write this into the StreamOutput.
-
Field Details
-
INDEX_READ_ONLY_BLOCK
-
INDEX_READ_BLOCK
-
INDEX_WRITE_BLOCK
-
INDEX_METADATA_BLOCK
-
INDEX_READ_ONLY_ALLOW_DELETE_BLOCK
-
INDEX_SETTING_PREFIX
public static final java.lang.String INDEX_SETTING_PREFIX- See Also:
- Constant Field Values
-
SETTING_NUMBER_OF_SHARDS
public static final java.lang.String SETTING_NUMBER_OF_SHARDS- See Also:
- Constant Field Values
-
INDEX_NUMBER_OF_SHARDS_SETTING
-
SETTING_NUMBER_OF_REPLICAS
public static final java.lang.String SETTING_NUMBER_OF_REPLICAS- See Also:
- Constant Field Values
-
INDEX_NUMBER_OF_REPLICAS_SETTING
-
SETTING_ROUTING_PARTITION_SIZE
public static final java.lang.String SETTING_ROUTING_PARTITION_SIZE- See Also:
- Constant Field Values
-
INDEX_ROUTING_PARTITION_SIZE_SETTING
-
INDEX_NUMBER_OF_ROUTING_SHARDS_SETTING
-
SETTING_AUTO_EXPAND_REPLICAS
public static final java.lang.String SETTING_AUTO_EXPAND_REPLICAS- See Also:
- Constant Field Values
-
INDEX_AUTO_EXPAND_REPLICAS_SETTING
-
SETTING_READ_ONLY
public static final java.lang.String SETTING_READ_ONLY -
INDEX_READ_ONLY_SETTING
-
SETTING_BLOCKS_READ
public static final java.lang.String SETTING_BLOCKS_READ -
INDEX_BLOCKS_READ_SETTING
-
SETTING_BLOCKS_WRITE
public static final java.lang.String SETTING_BLOCKS_WRITE -
INDEX_BLOCKS_WRITE_SETTING
-
SETTING_BLOCKS_METADATA
public static final java.lang.String SETTING_BLOCKS_METADATA -
INDEX_BLOCKS_METADATA_SETTING
-
SETTING_READ_ONLY_ALLOW_DELETE
public static final java.lang.String SETTING_READ_ONLY_ALLOW_DELETE -
INDEX_BLOCKS_READ_ONLY_ALLOW_DELETE_SETTING
-
SETTING_VERSION_CREATED
public static final java.lang.String SETTING_VERSION_CREATED- See Also:
- Constant Field Values
-
SETTING_INDEX_VERSION_CREATED
-
SETTING_VERSION_CREATED_STRING
public static final java.lang.String SETTING_VERSION_CREATED_STRING- See Also:
- Constant Field Values
-
SETTING_VERSION_UPGRADED
public static final java.lang.String SETTING_VERSION_UPGRADED- See Also:
- Constant Field Values
-
SETTING_VERSION_UPGRADED_STRING
public static final java.lang.String SETTING_VERSION_UPGRADED_STRING- See Also:
- Constant Field Values
-
SETTING_CREATION_DATE
public static final java.lang.String SETTING_CREATION_DATE- See Also:
- Constant Field Values
-
SETTING_INDEX_PROVIDED_NAME
public static final java.lang.String SETTING_INDEX_PROVIDED_NAMEThe user provided name for an index. This is the plain string provided by the user when the index was created. It might still contain date math expressions etc. (added in 5.0)- See Also:
- Constant Field Values
-
SETTING_PRIORITY
public static final java.lang.String SETTING_PRIORITY- See Also:
- Constant Field Values
-
INDEX_PRIORITY_SETTING
-
SETTING_CREATION_DATE_STRING
public static final java.lang.String SETTING_CREATION_DATE_STRING- See Also:
- Constant Field Values
-
SETTING_INDEX_UUID
public static final java.lang.String SETTING_INDEX_UUID- See Also:
- Constant Field Values
-
SETTING_HISTORY_UUID
public static final java.lang.String SETTING_HISTORY_UUID- See Also:
- Constant Field Values
-
SETTING_DATA_PATH
public static final java.lang.String SETTING_DATA_PATH- See Also:
- Constant Field Values
-
INDEX_DATA_PATH_SETTING
-
INDEX_UUID_NA_VALUE
public static final java.lang.String INDEX_UUID_NA_VALUE- See Also:
- Constant Field Values
-
INDEX_ROUTING_REQUIRE_GROUP_PREFIX
public static final java.lang.String INDEX_ROUTING_REQUIRE_GROUP_PREFIX- See Also:
- Constant Field Values
-
INDEX_ROUTING_INCLUDE_GROUP_PREFIX
public static final java.lang.String INDEX_ROUTING_INCLUDE_GROUP_PREFIX- See Also:
- Constant Field Values
-
INDEX_ROUTING_EXCLUDE_GROUP_PREFIX
public static final java.lang.String INDEX_ROUTING_EXCLUDE_GROUP_PREFIX- See Also:
- Constant Field Values
-
INDEX_ROUTING_REQUIRE_GROUP_SETTING
-
INDEX_ROUTING_INCLUDE_GROUP_SETTING
-
INDEX_ROUTING_EXCLUDE_GROUP_SETTING
-
INDEX_ROUTING_INITIAL_RECOVERY_GROUP_SETTING
public static final Setting.AffixSetting<java.lang.String> INDEX_ROUTING_INITIAL_RECOVERY_GROUP_SETTING -
SETTING_WAIT_FOR_ACTIVE_SHARDS
The number of active shard copies to check for before proceeding with a write operation. -
SETTING_INDEX_HIDDEN
public static final java.lang.String SETTING_INDEX_HIDDEN- See Also:
- Constant Field Values
-
INDEX_HIDDEN_SETTING
Whether the index is considered hidden or not. A hidden index will not be resolved in normal wildcard searches unless explicitly allowed -
INDEX_FORMAT_SETTING
-
KEY_IN_SYNC_ALLOCATIONS
public static final java.lang.String KEY_IN_SYNC_ALLOCATIONS- See Also:
- Constant Field Values
-
KEY_PRIMARY_TERMS
public static final java.lang.String KEY_PRIMARY_TERMS- See Also:
- Constant Field Values
-
INDEX_STATE_FILE_PREFIX
public static final java.lang.String INDEX_STATE_FILE_PREFIX- See Also:
- Constant Field Values
-
INDEX_RESIZE_SOURCE_UUID_KEY
public static final java.lang.String INDEX_RESIZE_SOURCE_UUID_KEY- See Also:
- Constant Field Values
-
INDEX_RESIZE_SOURCE_NAME_KEY
public static final java.lang.String INDEX_RESIZE_SOURCE_NAME_KEY- See Also:
- Constant Field Values
-
INDEX_RESIZE_SOURCE_UUID
-
INDEX_RESIZE_SOURCE_NAME
-
FORMAT
State format forIndexMetadata
to write to and load from disk
-
-
Method Details
-
getIndex
-
getIndexUUID
public java.lang.String getIndexUUID() -
isSameUUID
public boolean isSameUUID(java.lang.String otherUUID)Test whether the current index UUID is the same as the given one. Returns true if either are _na_ -
getVersion
public long getVersion() -
getMappingVersion
public long getMappingVersion() -
getSettingsVersion
public long getSettingsVersion() -
getAliasesVersion
public long getAliasesVersion() -
primaryTerm
public long primaryTerm(int shardId)The term of the current selected primary. This is a non-negative number incremented when a primary shard is assigned after a full cluster restart or a replica shard is promoted to a primary. Note: since we increment the term every time a shard is assigned, the term for any operational shard (i.e., a shard that can be indexed into) is larger than 0. SeeIndexMetadataUpdater.applyChanges(org.elasticsearch.cluster.metadata.Metadata, org.elasticsearch.cluster.routing.RoutingTable)
. -
getCreationVersion
Return theVersion
on which this index has been created. This information is typically useful for backward compatibility. -
getUpgradedVersion
Return theVersion
on which this index has been upgraded. This information is typically useful for backward compatibility. -
getCreationDate
public long getCreationDate() -
getState
-
getNumberOfShards
public int getNumberOfShards() -
getNumberOfReplicas
public int getNumberOfReplicas() -
getRoutingPartitionSize
public int getRoutingPartitionSize() -
isRoutingPartitionedIndex
public boolean isRoutingPartitionedIndex() -
getTotalNumberOfShards
public int getTotalNumberOfShards() -
getWaitForActiveShards
Returns the configuredSETTING_WAIT_FOR_ACTIVE_SHARDS
, which defaults to an active shard count of 1 if not specified. -
getSettings
-
getAliases
-
getMappings
Deprecated.Usemapping()
instead now that indices have a single typeReturn an object that maps each type to the associated mappings. The return value is nevernull
but may be empty if the index has no mappings. -
mapping
Return the concrete mapping for this index ornull
if this index has no mappings at all. -
defaultMapping
Get the default mapping. NOTE: this is alwaysnull
for 7.x indices which are disallowed to have a default mapping. -
getResizeSourceIndex
-
mappingOrDefault
Sometimes, the default mapping exists and an actual mapping is not created yet (introduced), in this case, we want to return the default mapping in case it has some default mapping definitions.Note, once the mapping type is introduced, the default mapping is applied on the actual typed MappingMetadata, setting its routing, timestamp, and so on if needed.
-
getCustomData
public java.util.Map<java.lang.String,java.lang.String> getCustomData(java.lang.String key) -
getInSyncAllocationIds
-
getRolloverInfos
-
inSyncAllocationIds
public java.util.Set<java.lang.String> inSyncAllocationIds(int shardId) -
requireFilters
-
getInitialRecoveryFilters
-
includeFilters
-
excludeFilters
-
equals
public boolean equals(java.lang.Object o)- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()- Overrides:
hashCode
in classjava.lang.Object
-
diff
Description copied from interface:Diffable
Returns serializable object representing differences between this and previousState- Specified by:
diff
in interfaceDiffable<IndexMetadata>
-
readDiffFrom
- Throws:
java.io.IOException
-
fromXContent
public static IndexMetadata fromXContent(org.elasticsearch.common.xcontent.XContentParser parser) throws java.io.IOException- Throws:
java.io.IOException
-
toXContent
public org.elasticsearch.common.xcontent.XContentBuilder toXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws java.io.IOException- Specified by:
toXContent
in interfaceorg.elasticsearch.common.xcontent.ToXContent
- Throws:
java.io.IOException
-
readFrom
- Throws:
java.io.IOException
-
writeTo
Description copied from interface:Writeable
Write this into the StreamOutput. -
isSystem
public boolean isSystem() -
builder
-
builder
-
addHumanReadableSettings
Adds human readable version and creation date settings. This method is used to display the settings in a human readable format in REST API -
getRoutingNumShards
public int getRoutingNumShards()Returns the number of shards that should be used for routing. This basically defines the hash space we use inOperationRouting.generateShardId(IndexMetadata, String, String)
to route documents to shards based on their ID or their specific routing value. The default value isgetNumberOfShards()
. This value only changes if and index is shrunk. -
getRoutingFactor
public int getRoutingFactor()Returns the routing factor for this index. The default is1
.- See Also:
for details
-
selectSplitShard
public static ShardId selectSplitShard(int shardId, IndexMetadata sourceIndexMetadata, int numTargetShards)Returns the source shard ID to split the given target shard off- Parameters:
shardId
- the id of the target shard to split intosourceIndexMetadata
- the source index metadatanumTargetShards
- the total number of shards in the target index- Returns:
- a the source shard ID to split off from
-
selectCloneShard
public static ShardId selectCloneShard(int shardId, IndexMetadata sourceIndexMetadata, int numTargetShards)Returns the source shard ID to clone the given target shard off- Parameters:
shardId
- the id of the target shard to clone intosourceIndexMetadata
- the source index metadatanumTargetShards
- the total number of shards in the target index- Returns:
- a the source shard ID to clone from
-
selectRecoverFromShards
public static java.util.Set<ShardId> selectRecoverFromShards(int shardId, IndexMetadata sourceIndexMetadata, int numTargetShards)Selects the source shards for a local shard recovery. This might either be a split or a shrink operation.- Parameters:
shardId
- the target shard ID to select the source shards forsourceIndexMetadata
- the source metadatanumTargetShards
- the number of target shards
-
selectShrinkShards
public static java.util.Set<ShardId> selectShrinkShards(int shardId, IndexMetadata sourceIndexMetadata, int numTargetShards)Returns the source shard ids to shrink into the given shard id.- Parameters:
shardId
- the id of the target shard to shrink tosourceIndexMetadata
- the source index metadatanumTargetShards
- the total number of shards in the target index- Returns:
- a set of shard IDs to shrink into the given shard ID.
-
getRoutingFactor
public static int getRoutingFactor(int sourceNumberOfShards, int targetNumberOfShards)Returns the routing factor for and shrunk index with the given number of target shards. This factor is used in the hash function inOperationRouting.generateShardId(IndexMetadata, String, String)
to guarantee consistent hashing / routing of documents even if the number of shards changed (ie. a shrunk index).- Parameters:
sourceNumberOfShards
- the total number of shards in the source indextargetNumberOfShards
- the total number of shards in the target index- Returns:
- the routing factor for and shrunk index with the given number of target shards.
- Throws:
java.lang.IllegalArgumentException
- if the number of source shards is less than the number of target shards or if the source shards are not divisible by the number of target shards.
-
parseIndexNameCounter
public static int parseIndexNameCounter(java.lang.String indexName)Parses the number from the rolled over index name. It also supports the date-math format (ie. index name is wrapped in < and >) E.g. - For ".ds-logs-000002" it will return 2 - For "<logs-{now/d}-3>" it'll return 3- Throws:
java.lang.IllegalArgumentException
- if the index doesn't contain a "-" separator or if the last token after the separator is not a number
-