--- title: "未知的算术运算" date: 2026-02-24 lastmod: 2026-02-24 description: "Elasticsearch遇到无法识别的算术运算导致的错误及解决方案" tags: ["Elasticsearch", "算术运算", "查询错误", "语法错误"] summary: " 版本: 6.8-8.9 简而言之,当Elasticsearch遇到它无法识别或理解的算术运算时,就会出现此错误。这可能是由于语法错误、拼写错误或查询中不支持的操作造成的。要解决此问题,您应该首先检查查询是否存在任何明显的错误。如果一切看起来都正确,请尝试简化查询或将其分解为较小的部分以识别有问题的操作。此外,确保您为操作使用正确的字段类型。最后,确保您使用的Elasticsearch版本支持您尝试执行的操作。 日志上下文 # 日志"Unknown arithmetic {}“的类名是 ExpressionBuilder.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人使用: case EqlBaseParser.ASTERISK -> new Mul(source, left, right); case EqlBaseParser.SLASH -> new Div(source, left, right); case EqlBaseParser.PERCENT -> new Mod(source, left, right); case EqlBaseParser.PLUS -> new Add(source, left, right); case EqlBaseParser.MINUS -> new Sub(source, left, right); default -> throw new ParsingException(source, "Unknown arithmetic {}", source.text()); }; } @Override public Literal visitBooleanValue(EqlBaseParser.BooleanValueContext ctx) { " --- > **版本:** 6.8-8.9 简而言之,当Elasticsearch遇到它无法识别或理解的算术运算时,就会出现此错误。这可能是由于语法错误、拼写错误或查询中不支持的操作造成的。要解决此问题,您应该首先检查查询是否存在任何明显的错误。如果一切看起来都正确,请尝试简化查询或将其分解为较小的部分以识别有问题的操作。此外,确保您为操作使用正确的字段类型。最后,确保您使用的Elasticsearch版本支持您尝试执行的操作。 ## 日志上下文 日志"Unknown arithmetic {}"的类名是[ExpressionBuilder.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人使用: ```java case EqlBaseParser.ASTERISK -> new Mul(source, left, right); case EqlBaseParser.SLASH -> new Div(source, left, right); case EqlBaseParser.PERCENT -> new Mod(source, left, right); case EqlBaseParser.PLUS -> new Add(source, left, right); case EqlBaseParser.MINUS -> new Sub(source, left, right); default -> throw new ParsingException(source, "Unknown arithmetic {}", source.text()); }; } @Override public Literal visitBooleanValue(EqlBaseParser.BooleanValueContext ctx) { ```