📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 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");
 }
 }
}