版本: 7.12-8.9
简要来说,当在查询中使用 DISTINCT 子句时会出现此错误。Elasticsearch 不支持 DISTINCT 关键字,因为它不是关系型数据库。要解决此问题,你可以使用 “terms” 聚合来获取不同的值。或者,你可以使用 “cardinality” 聚合来获取不同值的计数。另一个选项是使用脚本从结果中删除重复项。请记住,始终检查查询的语法和结构,以确保它们与 Elasticsearch 兼容。
日志上下文 #
日志 “does not support DISTINCT yet it was specified” 的类名是 SqlFunctionRegistry.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解的人参考:
T build(Source source, Expression expression, DataType dataType);
} private static void forbidDistinct(Source source, Boolean distinct) {
if (distinct != null) {
throw new ParsingException(source, "does not support DISTINCT yet it was specified");
}
}
}





