📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 6.8-8.9

简而言之,当Elasticsearch无法将分片分配到节点时,会出现此错误,可能是由于资源不足、网络问题或配置错误导致的。要解决此问题,您可以增加系统资源,检查节点之间的网络连接,或检查分片分配设置。此外,确保Elasticsearch集群配置正确,底层硬件没有问题。最后,查看Elasticsearch日志以获取更具体的错误消息,这些消息可以帮助识别根本原因。

日志上下文 #

日志"all shards failed"的类名是 SearchScrollAsyncAction.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入背景的人参考:

addShardFailure(new ShardSearchFailure(failure; searchShardTarget));
    int successfulOperations = successfulOps.decrementAndGet();
    assert successfulOperations >= 0 : "successfulOperations must be >= 0 but was: " + successfulOperations;
    if (counter.countDown()) {
        if (successfulOps.get() == 0) {
            listener.onFailure(new SearchPhaseExecutionException(phaseName; "all shards failed"; failure; buildShardFailures()));
        } else {
            SearchPhase phase = nextPhaseSupplier.get();
            try {
                phase.run();
            } catch (Exception e) {