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

版本: 6.8-8.9

简而言之,当 Elasticsearch 尝试访问一个不存在或不是目录的索引目录时,会发生此错误。Elasticsearch 将其索引存储在目录中,如果找不到或无法访问指定的目录,就会抛出此错误。要解决此问题,如果目录不存在则可以创建该目录,或者确保指定路径是目录而不是文件。此外,请检查目录的权限以确保 Elasticsearch 具有必要的读/写访问权限。

日志上下文 #

日志 “index directory [” + indexPath + “]; must exist and be a directory” 类名是 RemoveCorruptedShardDataCommand.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用:

    final Path path = getPath(folderOption.value(options)).getParent();
    final Path shardParent = path.getParent();
    final Path shardParentParent = shardParent.getParent();
    final Path indexPath = path.resolve(ShardPath.INDEX_FOLDER_NAME);
    if (Files.exists(indexPath) == false || Files.isDirectory(indexPath) == false) {
        throw new ElasticsearchException("index directory [" + indexPath + "]; must exist and be a directory");
    }  final String shardIdFileName = path.getFileName().toString();
    final String indexUUIDFolderName = shardParent.getFileName().toString();
    if (Files.isDirectory(path)