Elasticsearch:将双精度转换为geo_point。无效的geohash字符出错

时间:2015-06-30 20:55:22

标签: elasticsearch geopoints

当我运行此脚本以将经度和纬度连接成一个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',
                    }
            }
    }
}

感谢您的帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

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

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