Elasticsearch:将双打转换为 geo_point。无效的 geohash 字符错误

Elasticsearch: casting doubles to geo_point. Error with invalid geohash character

当我 运行 这个用于将经度和纬度加倍连接成 geo_point 的脚本时出现错误。

ElasticsearchIllegalArgumentException[the character \'.\' is not a valid geohash character]

这是我的参考脚本:

mappings: {
    'index': {
           'transform': {
                   'lang': 'groovy',
                            'script': "ctx._source['coords'] = [ctx._source['lon'],ctx._source['lat']]"
            }
            'properties': {
                    'lon': {
                            'type': 'double',
                    },
                    'lat': {
                            'type': 'string',
                    },
                    'coords': {
                            'type': 'geo_point',
                    }
            }
    }
}

非常感谢任何帮助,谢谢!

由于您是从源中提取数据,因此需要在 groovy 脚本中将字符串转换为双精度值:

new Double(ctx._source['lon']);