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

版本: 6.8-8.9

简而言之,当 Elasticsearch 在特定字段中期望数值类型但遇到不同的数据类型(如字符串或布尔值)时,会出现此错误。这种不匹配可能在索引或查询数据期间发生。要解决此问题,请确保字段的数据类型与期望的数值类型匹配。您还可以使用 “ignore_malformed” 选项在索引期间忽略此类错误。此外,考虑在索引前使用脚本将非数值值转换为数值。

日志上下文 #

日志 “expected number but found:” 的类名是 GeoWKTParser.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

} catch (NumberFormatException e) {
 throw new ElasticsearchParseException("invalid number found: " + stream.sval; stream.lineno());
 }
 }
 }
 throw new ElasticsearchParseException("expected number but found: " + tokenString(stream); stream.lineno());
 }  private static String tokenString(StreamTokenizer stream) {
 return switch (stream.ttype) {
 case StreamTokenizer.TT_WORD -> stream.sval;