org.elasticsearch.cluster.metadata.IndexMetaData.getRoutingNumShards()方法的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(7.6k)|赞(0)|评价(0)|浏览(66)

本文整理了Java中org.elasticsearch.cluster.metadata.IndexMetaData.getRoutingNumShards()方法的一些代码示例,展示了IndexMetaData.getRoutingNumShards()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。IndexMetaData.getRoutingNumShards()方法的具体详情如下:
包路径:org.elasticsearch.cluster.metadata.IndexMetaData
类名称:IndexMetaData
方法名:getRoutingNumShards

IndexMetaData.getRoutingNumShards介绍

[英]Returns the number of shards that should be used for routing. This basically defines the hash space we use in org.elasticsearch.cluster.routing.OperationRouting#generateShardId(IndexMetaData,String,String) to route documents to shards based on their ID or their specific routing value. The default value is #getNumberOfShards(). This value only changes if and index is shrunk.
[中]返回应用于路由的碎片数。这基本上定义了我们在组织中使用的散列空间。弹性搜索。簇路由。OperationRouting#GenerateSharedID(IndexMetaData,String,String)根据文档ID或特定路由值将文档路由到碎片。默认值为#getNumberOfShards()。仅当和索引收缩时,此值才会更改。

代码示例

代码示例来源:origin: org.elasticsearch/elasticsearch

/**
 * Returns the source shard ID to split the given target shard off
 * @param shardId the id of the target shard to split into
 * @param sourceIndexMetadata the source index metadata
 * @param numTargetShards the total number of shards in the target index
 * @return a the source shard ID to split off from
 */
public static ShardId selectSplitShard(int shardId, IndexMetaData sourceIndexMetadata, int numTargetShards) {
  if (shardId >= numTargetShards) {
    throw new IllegalArgumentException("the number of target shards (" + numTargetShards + ") must be greater than the shard id: "
      + shardId);
  }
  int numSourceShards = sourceIndexMetadata.getNumberOfShards();
  if (numSourceShards > numTargetShards) {
    throw new IllegalArgumentException("the number of source shards [" + numSourceShards
       + "] must be less that the number of target shards [" + numTargetShards + "]");
  }
  int routingFactor = getRoutingFactor(numSourceShards, numTargetShards);
  // now we verify that the numRoutingShards is valid in the source index
  int routingNumShards = sourceIndexMetadata.getRoutingNumShards();
  if (routingNumShards % numTargetShards != 0) {
    throw new IllegalStateException("the number of routing shards ["
      + routingNumShards + "] must be a multiple of the target shards [" + numTargetShards + "]");
  }
  // this is just an additional assertion that ensures we are a factor of the routing num shards.
  assert getRoutingFactor(numTargetShards, sourceIndexMetadata.getRoutingNumShards()) >= 0;
  return new ShardId(sourceIndexMetadata.getIndex(), shardId/routingFactor);
}

代码示例来源:origin: org.elasticsearch/elasticsearch

private static int calculateScaledShardId(IndexMetaData indexMetaData, String effectiveRouting, int partitionOffset) {
  final int hash = Murmur3HashFunction.hash(effectiveRouting) + partitionOffset;
  // we don't use IMD#getNumberOfShards since the index might have been shrunk such that we need to use the size
  // of original index to hash documents
  return Math.floorMod(hash, indexMetaData.getRoutingNumShards()) / indexMetaData.getRoutingFactor();
}

代码示例来源:origin: org.elasticsearch/elasticsearch

builder.field(KEY_MAPPING_VERSION, indexMetaData.getMappingVersion());
builder.field(KEY_SETTINGS_VERSION, indexMetaData.getSettingsVersion());
builder.field(KEY_ROUTING_NUM_SHARDS, indexMetaData.getRoutingNumShards());
builder.field(KEY_STATE, indexMetaData.getState().toString().toLowerCase(Locale.ENGLISH));

代码示例来源:origin: org.elasticsearch/elasticsearch

: "index.number_of_routing_shards should be present on the target index on resize";
final IndexMetaData sourceMetaData = currentState.metaData().getIndexSafe(recoverFromIndex);
routingNumShards = sourceMetaData.getRoutingNumShards();

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch

private static int calculateScaledShardId(IndexMetaData indexMetaData, String effectiveRouting, int partitionOffset) {
  final int hash = Murmur3HashFunction.hash(effectiveRouting) + partitionOffset;
  // we don't use IMD#getNumberOfShards since the index might have been shrunk such that we need to use the size
  // of original index to hash documents
  return Math.floorMod(hash, indexMetaData.getRoutingNumShards()) / indexMetaData.getRoutingFactor();
}

代码示例来源:origin: com.strapdata.elasticsearch/elasticsearch

private static int calculateScaledShardId(IndexMetaData indexMetaData, String effectiveRouting, int partitionOffset) {
  final int hash = Murmur3HashFunction.hash(effectiveRouting) + partitionOffset;
  // we don't use IMD#getNumberOfShards since the index might have been shrunk such that we need to use the size
  // of original index to hash documents
  return Math.floorMod(hash, indexMetaData.getRoutingNumShards()) / indexMetaData.getRoutingFactor();
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch

/**
 * Returns the source shard ID to split the given target shard off
 * @param shardId the id of the target shard to split into
 * @param sourceIndexMetadata the source index metadata
 * @param numTargetShards the total number of shards in the target index
 * @return a the source shard ID to split off from
 */
public static ShardId selectSplitShard(int shardId, IndexMetaData sourceIndexMetadata, int numTargetShards) {
  if (shardId >= numTargetShards) {
    throw new IllegalArgumentException("the number of target shards (" + numTargetShards + ") must be greater than the shard id: "
      + shardId);
  }
  int numSourceShards = sourceIndexMetadata.getNumberOfShards();
  if (numSourceShards > numTargetShards) {
    throw new IllegalArgumentException("the number of source shards [" + numSourceShards
       + "] must be less that the number of target shards [" + numTargetShards + "]");
  }
  int routingFactor = getRoutingFactor(numSourceShards, numTargetShards);
  // now we verify that the numRoutingShards is valid in the source index
  int routingNumShards = sourceIndexMetadata.getRoutingNumShards();
  if (routingNumShards % numTargetShards != 0) {
    throw new IllegalStateException("the number of routing shards ["
      + routingNumShards + "] must be a multiple of the target shards [" + numTargetShards + "]");
  }
  // this is just an additional assertion that ensures we are a factor of the routing num shards.
  assert getRoutingFactor(numTargetShards, sourceIndexMetadata.getRoutingNumShards()) >= 0;
  return new ShardId(sourceIndexMetadata.getIndex(), shardId/routingFactor);
}

代码示例来源:origin: apache/servicemix-bundles

private static int calculateScaledShardId(IndexMetaData indexMetaData, String effectiveRouting, int partitionOffset) {
  final int hash = Murmur3HashFunction.hash(effectiveRouting) + partitionOffset;
  // we don't use IMD#getNumberOfShards since the index might have been shrunk such that we need to use the size
  // of original index to hash documents
  return Math.floorMod(hash, indexMetaData.getRoutingNumShards()) / indexMetaData.getRoutingFactor();
}

代码示例来源:origin: com.strapdata.elasticsearch/elasticsearch

builder.field(KEY_ROUTING_NUM_SHARDS, indexMetaData.getRoutingNumShards());

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch

builder.field(KEY_MAPPING_VERSION, indexMetaData.getMappingVersion());
builder.field(KEY_SETTINGS_VERSION, indexMetaData.getSettingsVersion());
builder.field(KEY_ROUTING_NUM_SHARDS, indexMetaData.getRoutingNumShards());
builder.field(KEY_STATE, indexMetaData.getState().toString().toLowerCase(Locale.ENGLISH));

代码示例来源:origin: com.strapdata.elasticsearch/elasticsearch

request.index());
IndexMetaData sourceMetaData = currentState.metaData().getIndexSafe(shrinkFromIndex);
routingNumShards = sourceMetaData.getRoutingNumShards();

代码示例来源:origin: apache/servicemix-bundles

: "index.number_of_routing_shards should be present on the target index on resize";
final IndexMetaData sourceMetaData = currentState.metaData().getIndexSafe(recoverFromIndex);
routingNumShards = sourceMetaData.getRoutingNumShards();

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch

: "index.number_of_routing_shards should be present on the target index on resize";
final IndexMetaData sourceMetaData = currentState.metaData().getIndexSafe(recoverFromIndex);
routingNumShards = sourceMetaData.getRoutingNumShards();

相关文章

微信公众号

最新文章

更多

IndexMetaData类方法