下文整理的几个问答,本人在实际应用中亲身经历或解决过的,主要涉及Elasticsearch地理坐标类型(Geo-point)在Java应用中的一些特殊使用场景,核心依赖如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
A1. elasticsearch的geo_point
类型对应java中的哪种数据类型?
Q1. spring data elasticsearch中定义了GeoPoint
这个类来实现两者之间的类型映射,此外还需要为当前字段添加@GeoPointField
注解进行标志,注意GeoPoint
应该使用org.springframework.data.elasticsearch.core.geo
包下的。
/**
* 坐标位置
*/
@GeoPointField
private GeoPoint location;
A2. spring data elasticsearch中,如何以某坐标点为中心搜索指定范围的其它点?
Q2. 建议尽可能通过继承ElasticsearchRepository<T, ID extends Serializable>
来简化完成相关查询;
实现以某点为中心并搜索指定范围,首先定义如下:
public interface TestRepository