--- title: "在滚动上下文中不允许禁用 track_total_hits – 如何解决此 Elasticsearch 异常" date: 2026-02-24 lastmod: 2026-02-24 description: "当在 Elasticsearch 中使用滚动 API 时将 track_total_hits 参数设置为 false 时会出现此错误。滚动 API 不支持此参数,因为它需要跟踪所有命中以获得准确结果。" tags: ["滚动API", "查询参数", "异常处理"] summary: "版本: 6.8-8.9 简要来说,当在 Elasticsearch 中使用滚动 API 时将 “track_total_hits” 参数设置为 false 时,就会出现此错误。滚动 API 不支持此参数,因为它需要跟踪所有命中以获得准确的结果。要解决此问题,您可以从查询中删除 “track_total_hits” 参数,或者将其设置为 true。如果不需要使用滚动 API,可以考虑使用搜索 API,它支持禁用 “track_total_hits”。 日志上下文 # 日志 “disabling [track_total_hits] is not allowed in a scroll context” 的类名是 SearchService.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考: } context.trackScores(source.trackScores()); if (source.trackTotalHitsUpTo() != null && source.trackTotalHitsUpTo() != SearchContext.TRACK_TOTAL_HITS_ACCURATE && context.scrollContext() != null) { throw new SearchException(shardTarget, "disabling [track_total_hits] is not allowed in a scroll context"); } if (source.trackTotalHitsUpTo() != null) { context." --- > **版本:** 6.8-8.9 简要来说,当在 Elasticsearch 中使用滚动 API 时将 "track_total_hits" 参数设置为 false 时,就会出现此错误。滚动 API 不支持此参数,因为它需要跟踪所有命中以获得准确的结果。要解决此问题,您可以从查询中删除 "track_total_hits" 参数,或者将其设置为 true。如果不需要使用滚动 API,可以考虑使用搜索 API,它支持禁用 "track_total_hits"。 日志上下文 ----------- 日志 "disabling [track\_total\_hits] is not allowed in a scroll context" 的类名是 [SearchService.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考: ```java } context.trackScores(source.trackScores()); if (source.trackTotalHitsUpTo() != null && source.trackTotalHitsUpTo() != SearchContext.TRACK_TOTAL_HITS_ACCURATE && context.scrollContext() != null) { throw new SearchException(shardTarget, "disabling [track_total_hits] is not allowed in a scroll context"); } if (source.trackTotalHitsUpTo() != null) { context.trackTotalHitsUpTo(source.trackTotalHitsUpTo()); } if (source.minScore() != null) { ```