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

版本: 7.16-8.9

简要来说,当尝试从处于不可读状态的 Elasticsearch 索引分片读取数据时,会发生此错误。这可能是由于分片处于恢复、初始化或重新分配状态。要解决此问题,您可以等待分片再次变为可用状态。如果问题持续存在,您可能需要检查集群健康状况并确保所有分片都已正确分配。如有必要,您可以手动重新分配分片,或考虑增加副本数量以提高可用性。

日志上下文 #

日志"Read not allowed on IndexShard"的类名是 IndexShard.java. 我们从 Elasticsearch 源代码中提取了以下内容,为那些寻求深入上下文的人提供参考:

    }
    if (readAllowed) {
        refreshListeners.addOrNotify(checkpoint; allowUnIssuedSequenceNumber; listener);
    } else {
        // we're not yet ready for reads; fail to notify client
        listener.onFailure(new IllegalIndexShardStateException(shardId; state; "Read not allowed on IndexShard"));
    }
    }  private static class RefreshMetricUpdater implements ReferenceManager.RefreshListener {