2 zhu2898 zhu2898 于 2015.07.14 21:19 提问

spring-data-elasticsearch 创建geo_point 类型不生效

最近在用spring-data-elasticsearch 在做距离应用时创建geo_point
类型时发现有时候会不生效(注意是有时候不生效,不知道是哪里影响的,很妖),正常情况下type 应该是geo_point,但是有时候创建出来的是一个嵌套类型,包含两个double属性的type
实体类加了注解如下

@GeoPointField
private GeoPoint shipperPoint;

 创建出来的正确类型如下图:
 ![图片说明](http://img.ask.csdn.net/upload/201507/14/1436879872_437791.png)

创建出来的错误类型如下图:
图片说明
不知道是什么原因导致的geo_point 类型不生效?
求大神指导?

4个回答

zhu2898
zhu2898   2015.07.14 21:19

图片说明 这是正确类型

xiehd313
xiehd313   2015.09.10 15:34

java model 属性如何定义为geo_point, 为什么我无法引入@GeoPointField,缺包吗?

kmust_edu
kmust_edu   2015.12.18 15:44

请问lz是怎么解决的?我也出现了同样的问题。原因大概找到了:entity上的索引名称indexName是死的,而我需要动态的指定。当索引建好后,那个死的索引geo_point类型是正确的,而动态指定indexName的索引property类型确实错误的double(这种情况是查找不出来结果的)。就结果来说,和你的问题是一样的,请问这个是怎么解决的?

lyd8483789
lyd8483789   2016.10.09 16:27

参考http://es.xiaoleilu.com/310_Geopoints/20_Geopoints.html

地理坐标点不能被动态映射(dynamic mapping)自动检测,而是需要显式声明对应字段类型为 geo_point
先进行声明

PUT http://localhost:9200/my_index
{
"mappings": {
"my_type": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
}
然后实体映射就没有问题了

Csdn user default icon
上传中...
上传图片
插入图片