--- title: "已取消(Cancelled)- 如何解决此 Elasticsearch 异常" date: 2026-01-10 lastmod: 2026-01-10 description: "Elasticsearch 操作因超时或用户主动取消而失败,通常由于长时间运行的查询或繁重的索引操作导致。本文介绍解决方案。" tags: ["异常处理", "任务取消", "超时", "查询优化", "性能调优"] summary: " 版本: 6.8-8.9 简单来说,当 Elasticsearch 操作因超时或用户主动取消而被中止时,就会出现此错误。这可能是由于查询运行时间过长或索引操作过于繁重导致的。要解决此问题,您可以增加超时限制,优化查询或索引操作以加快执行速度,或增加 Elasticsearch 集群的资源以处理更重的负载。另外,确保您的集群不会同时处理过多操作而导致过载。 日志上下文 # 日志 “cancelled” 的类名是 DfsPhase.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些需要深入了解上下文的用户参考: IndexSearcher searcher = new IndexSearcher(context.searcher().getIndexReader()) { @Override public TermStatistics termStatistics(Term term; int docFreq; long totalTermFreq) throws IOException { if (context.isCancelled()) { throw new TaskCancelledException("cancelled"); } maybeStart.accept(DfsTimingType.TERM_STATISTICS); try { TermStatistics ts = super.termStatistics(term; docFreq; totalTermFreq); if (ts != null) { " --- > **版本:** 6.8-8.9 简单来说,当 Elasticsearch 操作因超时或用户主动取消而被中止时,就会出现此错误。这可能是由于查询运行时间过长或索引操作过于繁重导致的。要解决此问题,您可以增加超时限制,优化查询或索引操作以加快执行速度,或增加 Elasticsearch 集群的资源以处理更重的负载。另外,确保您的集群不会同时处理过多操作而导致过载。 ## 日志上下文 日志 "cancelled" 的类名是 [DfsPhase.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从 Elasticsearch 源代码中提取了以下内容,供那些需要深入了解上下文的用户参考: ```java IndexSearcher searcher = new IndexSearcher(context.searcher().getIndexReader()) { @Override public TermStatistics termStatistics(Term term; int docFreq; long totalTermFreq) throws IOException { if (context.isCancelled()) { throw new TaskCancelledException("cancelled"); } maybeStart.accept(DfsTimingType.TERM_STATISTICS); try { TermStatistics ts = super.termStatistics(term; docFreq; totalTermFreq); if (ts != null) { ```