当前位置: 首页>>代码示例>>Java>>正文


Java MetaData.hasIndex方法代码示例

本文整理汇总了Java中org.elasticsearch.cluster.metadata.MetaData.hasIndex方法的典型用法代码示例。如果您正苦于以下问题:Java MetaData.hasIndex方法的具体用法?Java MetaData.hasIndex怎么用?Java MetaData.hasIndex使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.elasticsearch.cluster.metadata.MetaData的用法示例。


在下文中一共展示了MetaData.hasIndex方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: resolveAndValidateRouting

import org.elasticsearch.cluster.metadata.MetaData; //导入方法依赖的package包/类
public static void resolveAndValidateRouting(final MetaData metaData, String concreteIndex, DeleteRequest request) {
    request.routing(metaData.resolveIndexRouting(request.routing(), request.index()));
    if (metaData.hasIndex(concreteIndex)) {
        // check if routing is required, if so, throw error if routing wasn't specified
        MappingMetaData mappingMd = metaData.index(concreteIndex).mappingOrDefault(request.type());
        if (mappingMd != null && mappingMd.routing().required()) {
            if (request.routing() == null) {
                if (request.versionType() != VersionType.INTERNAL) {
                    // TODO: implement this feature
                    throw new IllegalArgumentException("routing value is required for deleting documents of type [" + request.type()
                        + "] while using version_type [" + request.versionType() + "]");
                }
                throw new RoutingMissingException(concreteIndex, request.type(), request.id());
            }
        }
    }
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:18,代码来源:TransportDeleteAction.java

示例2: findNewDanglingIndices

import org.elasticsearch.cluster.metadata.MetaData; //导入方法依赖的package包/类
/**
 * Finds new dangling indices by iterating over the indices and trying to find indices
 * that have state on disk, but are not part of the provided meta data, or not detected
 * as dangled already.
 */
Map<Index, IndexMetaData> findNewDanglingIndices(final MetaData metaData) {
    final Set<String> excludeIndexPathIds = new HashSet<>(metaData.indices().size() + danglingIndices.size());
    for (ObjectCursor<IndexMetaData> cursor : metaData.indices().values()) {
        excludeIndexPathIds.add(cursor.value.getIndex().getUUID());
    }
    excludeIndexPathIds.addAll(danglingIndices.keySet().stream().map(Index::getUUID).collect(Collectors.toList()));
    try {
        final List<IndexMetaData> indexMetaDataList = metaStateService.loadIndicesStates(excludeIndexPathIds::contains);
        Map<Index, IndexMetaData> newIndices = new HashMap<>(indexMetaDataList.size());
        final IndexGraveyard graveyard = metaData.indexGraveyard();
        for (IndexMetaData indexMetaData : indexMetaDataList) {
            if (metaData.hasIndex(indexMetaData.getIndex().getName())) {
                logger.warn("[{}] can not be imported as a dangling index, as index with same name already exists in cluster metadata",
                    indexMetaData.getIndex());
            } else if (graveyard.containsIndex(indexMetaData.getIndex())) {
                logger.warn("[{}] can not be imported as a dangling index, as an index with the same name and UUID exist in the " +
                            "index tombstones.  This situation is likely caused by copying over the data directory for an index " +
                            "that was previously deleted.", indexMetaData.getIndex());
            } else {
                logger.info("[{}] dangling index exists on local file system, but not in cluster metadata, " +
                            "auto import to cluster state", indexMetaData.getIndex());
                newIndices.put(indexMetaData.getIndex(), indexMetaData);
            }
        }
        return newIndices;
    } catch (IOException e) {
        logger.warn("failed to list dangling indices", e);
        return emptyMap();
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:36,代码来源:DanglingIndicesState.java

示例3: indicesWithMissingShards

import org.elasticsearch.cluster.metadata.MetaData; //导入方法依赖的package包/类
/**
 * Returns list of indices with missing shards, and list of indices that are closed
 *
 * @param shards list of shard statuses
 * @return list of failed and closed indices
 */
private Tuple<Set<String>, Set<String>> indicesWithMissingShards(ImmutableOpenMap<ShardId, SnapshotsInProgress.ShardSnapshotStatus> shards, MetaData metaData) {
    Set<String> missing = new HashSet<>();
    Set<String> closed = new HashSet<>();
    for (ObjectObjectCursor<ShardId, SnapshotsInProgress.ShardSnapshotStatus> entry : shards) {
        if (entry.value.state() == State.MISSING) {
            if (metaData.hasIndex(entry.key.getIndex().getName()) && metaData.getIndexSafe(entry.key.getIndex()).getState() == IndexMetaData.State.CLOSE) {
                closed.add(entry.key.getIndex().getName());
            } else {
                missing.add(entry.key.getIndex().getName());
            }
        }
    }
    return new Tuple<>(missing, closed);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:21,代码来源:SnapshotsService.java

示例4: removeIndexLocationsForDeletedIndices

import org.elasticsearch.cluster.metadata.MetaData; //导入方法依赖的package包/类
private void removeIndexLocationsForDeletedIndices(ClusterChangedEvent event, MetaData currentMetaData) {
    MetaData newMetaData = event.state().metaData();
    for (IndexMetaData current : currentMetaData) {
        String index = current.getIndex();
        if (!newMetaData.hasIndex(index) && isBlobIndex(index)) {
            deleteBlobIndexLocation(current, index);
        }
    }
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:10,代码来源:BlobIndices.java

示例5: cleanupAllocatedDangledIndices

import org.elasticsearch.cluster.metadata.MetaData; //导入方法依赖的package包/类
/**
 * Cleans dangling indices if they are already allocated on the provided meta data.
 */
void cleanupAllocatedDangledIndices(MetaData metaData) {
    for (String danglingIndex : danglingIndices.keySet()) {
        if (metaData.hasIndex(danglingIndex)) {
            logger.debug("[{}] no longer dangling (created), removing from dangling list", danglingIndex);
            danglingIndices.remove(danglingIndex);
        }
    }
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:12,代码来源:DanglingIndicesState.java

示例6: findNewDanglingIndices

import org.elasticsearch.cluster.metadata.MetaData; //导入方法依赖的package包/类
/**
 * Finds new dangling indices by iterating over the indices and trying to find indices
 * that have state on disk, but are not part of the provided meta data, or not detected
 * as dangled already.
 */
Map<String, IndexMetaData> findNewDanglingIndices(MetaData metaData) {
    final Set<String> indices;
    try {
        indices = nodeEnv.findAllIndices();
    } catch (Throwable e) {
        logger.warn("failed to list dangling indices", e);
        return ImmutableMap.of();
    }

    Map<String, IndexMetaData>  newIndices = Maps.newHashMap();
    for (String indexName : indices) {
        if (metaData.hasIndex(indexName) == false && danglingIndices.containsKey(indexName) == false) {
            try {
                IndexMetaData indexMetaData = metaStateService.loadIndexState(indexName);
                if (indexMetaData != null) {
                    logger.info("[{}] dangling index, exists on local file system, but not in cluster metadata, auto import to cluster state", indexName);
                    if (!indexMetaData.getIndex().equals(indexName)) {
                        logger.info("dangled index directory name is [{}], state name is [{}], renaming to directory name", indexName, indexMetaData.getIndex());
                        indexMetaData = IndexMetaData.builder(indexMetaData).index(indexName).build();
                    }
                    newIndices.put(indexName, indexMetaData);
                } else {
                    logger.debug("[{}] dangling index directory detected, but no state found", indexName);
                }
            } catch (Throwable t) {
                logger.warn("[{}] failed to load index state for detected dangled index", t, indexName);
            }
        }
    }
    return newIndices;
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:37,代码来源:DanglingIndicesState.java

示例7: validate

import org.elasticsearch.cluster.metadata.MetaData; //导入方法依赖的package包/类
public void validate(RoutingTableValidation validation, MetaData metaData) {
    if (!metaData.hasIndex(index())) {
        validation.addIndexFailure(index(), "Exists in routing does not exists in metadata");
        return;
    }
    IndexMetaData indexMetaData = metaData.index(index());
    for (String failure : validate(indexMetaData)) {
        validation.addIndexFailure(index, failure);
    }

}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:12,代码来源:IndexRoutingTable.java

示例8: indicesWithMissingShards

import org.elasticsearch.cluster.metadata.MetaData; //导入方法依赖的package包/类
/**
 * Returns list of indices with missing shards, and list of indices that are closed
 *
 * @param shards list of shard statuses
 * @return list of failed and closed indices
 */
private Tuple<Set<String>, Set<String>> indicesWithMissingShards(ImmutableMap<ShardId, SnapshotsInProgress.ShardSnapshotStatus> shards, MetaData metaData) {
    Set<String> missing = newHashSet();
    Set<String> closed = newHashSet();
    for (ImmutableMap.Entry<ShardId, SnapshotsInProgress.ShardSnapshotStatus> entry : shards.entrySet()) {
        if (entry.getValue().state() == State.MISSING) {
            if (metaData.hasIndex(entry.getKey().getIndex()) && metaData.index(entry.getKey().getIndex()).getState() == IndexMetaData.State.CLOSE) {
                closed.add(entry.getKey().getIndex());
            } else {
                missing.add(entry.getKey().getIndex());
            }
        }
    }
    return new Tuple<>(missing, closed);
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:21,代码来源:SnapshotsService.java

示例9: resolveRequest

import org.elasticsearch.cluster.metadata.MetaData; //导入方法依赖的package包/类
@Override
protected void resolveRequest(MetaData metaData, String concreteIndex, IndexRequest request) {
    MappingMetaData mappingMd = null;
    if (metaData.hasIndex(concreteIndex)) {
        mappingMd = metaData.index(concreteIndex).mappingOrDefault(request.type());
    }
    request.process(metaData, mappingMd, allowIdGeneration, concreteIndex);
    ShardId shardId = clusterService.operationRouting().shardId(clusterService.state(), concreteIndex, request.type(), request.id(), request.routing());
    request.setShardId(shardId);
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:11,代码来源:TransportIndexAction.java


注:本文中的org.elasticsearch.cluster.metadata.MetaData.hasIndex方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。