--- title: "IN 查询暂不支持 - 如何解决此 Elasticsearch 异常" date: 2026-03-13 lastmod: 2026-03-13 description: "当尝试使用 Elasticsearch 不支持的 IN 查询时会引发此错误。可以使用 terms 查询或 bool 查询来替代实现相同功能。" tags: ["查询异常", "IN 查询", "terms 查询", "SQL 查询", "查询 DSL"] summary: "版本: 6.8-8.9 简要来说,当您尝试使用 Elasticsearch 不支持的"IN"查询时,会出现此错误。Elasticsearch 使用不同的查询 DSL(领域特定语言),不直接支持类似 SQL 的"IN"查询。要解决此问题,您可以使用 Elasticsearch 中的"terms"查询,它等同于 SQL 中的"IN"查询。或者,您可以使用带有多个"match"查询的"bool"查询来实现相同的结果。请始终查阅 Elasticsearch 文档,以了解其查询 DSL 的正确语法和用法。 日志上下文 # 日志"IN query not supported yet"的类名是 ExpressionBuilder.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的用户参考: case SqlBaseParser.BETWEEN: e = new Range(source; exp; expression(pCtx.lower); true; expression(pCtx.upper); true; zoneId); break; case SqlBaseParser.IN: if (pCtx.query() != null) { throw new ParsingException(source; "IN query not supported yet"); } e = new In(source; exp; expressions(pCtx.valueExpression()); zoneId); break; case SqlBaseParser.LIKE: e = new Like(source; exp; visitPattern(pCtx." --- > **版本:** 6.8-8.9 简要来说,当您尝试使用 Elasticsearch 不支持的"IN"查询时,会出现此错误。Elasticsearch 使用不同的查询 DSL(领域特定语言),不直接支持类似 SQL 的"IN"查询。要解决此问题,您可以使用 Elasticsearch 中的"terms"查询,它等同于 SQL 中的"IN"查询。或者,您可以使用带有多个"match"查询的"bool"查询来实现相同的结果。请始终查阅 Elasticsearch 文档,以了解其查询 DSL 的正确语法和用法。 日志上下文 ----------- 日志"IN query not supported yet"的类名是 [ExpressionBuilder.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的用户参考: ```java case SqlBaseParser.BETWEEN: e = new Range(source; exp; expression(pCtx.lower); true; expression(pCtx.upper); true; zoneId); break; case SqlBaseParser.IN: if (pCtx.query() != null) { throw new ParsingException(source; "IN query not supported yet"); } e = new In(source; exp; expressions(pCtx.valueExpression()); zoneId); break; case SqlBaseParser.LIKE: e = new Like(source; exp; visitPattern(pCtx.pattern())); ```