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

版本: 8.1-8.9

简要来说,当Elasticsearch无法在指定目录中找到segments文件时,就会发生此错误。这个文件至关重要,因为它包含了关于索引中segments的信息。该文件的缺失可能是由于意外删除或损坏造成的。要解决此问题,您可以从备份中恢复segments文件。如果备份不可用,您可能需要重建索引。此外,确保Elasticsearch对目录具有必要的读/写权限。定期备份数据可以防止将来出现此类问题。

日志上下文

日志"no segments* file found in " + directory + “: files: “的类名是 OldSegmentInfos.java。 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考:

if (infoStream != null) {
 message("directory listing gen=" + gen);
 }  if (gen == -1) {
 throw new IndexNotFoundException("no segments* file found in " + directory + ": files: " + Arrays.toString(files));
 } else if (gen > lastGen) {
 String segmentFileName = IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS, "", gen);  try {
 T t = doBody(segmentFileName);
查看 Markdown
On this page