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

版本: 7.16-8.9

简而言之,当 Elasticsearch 尝试解析地理定位数据且提供的坐标不符合预期格式时,会出现此错误。Elasticsearch 期望有 2 个(纬度、经度)或 3 个(纬度、经度、高度)坐标。要解决此问题,请确保正在索引的数据格式正确。如果数据是动态的,请考虑在索引之前添加一个预处理步骤来验证和格式化数据。如果数据是静态的,请手动修正格式。此外,请检查您的映射以确保字段正确设置为 geo-point 或 geo-shape 类型。

日志上下文 #

日志 “failed to parse [{}]; expected 2 or 3 coordinates " + “but found: [{}]” 类名是 GeoPoint.java. 我们从 Elasticsearch 源代码中提取了以下内容,以便为那些寻求深入背景的人提供参考:

}  public GeoPoint resetFromCoordinates(String value; final boolean ignoreZValue) {
    String[] vals = value.split(";");
    if (vals.length > 3) {
        throw new ElasticsearchParseException("failed to parse [{}]; expected 2 or 3 coordinates " + "but found: [{}]"; vals.length);
    }
    final double lat;
    final double lon;
    try {
        lat = Double.parseDouble(vals[0].trim());