ElasticSearch - 地理位置阵列上的空间搜索

问题描述:

我正在创建两种类型的餐厅和分支与春季数据的索引。餐厅有许多分店作为嵌套式。当我创建这个映射时,Spring Data/ElasticSearch自动将分支类型内的位置字段转换为纬度,经度数组,因此地理空间查询是不可能的。这里是:ElasticSearch - 地理位置阵列上的空间搜索

我想要在地理空间搜索的branch.location执行搜索,但弹性搜索不处理位置作为地点,而是一个字符串数组,因此这是不可能的,请建议我需要什么做什么或哪里出错。

class Restaurant { 
    @Field(type = FieldType.Nested) 
    private List<Branch> branches = new ArrayList<Branch>(); 
} 

class Branch { 
    private GeoPoint location; 
} 

确保您使用的

org.springframework.data.elasticsearch.core.geo.GeoPoint

而且不

org.elasticsearch.common.geo。 GeoPoint

或者(也许更好),定义mappin g,而不是让spring/elasticsearch为你做。