添加es配置文件org.springframework.boot spring-boot-starter-data-elasticsearch2.3.4.RELEASE
@Configuration public class EsConfiguration extends AbstractElasticsearchConfiguration { @Override @Bean public RestHighLevelClient elasticsearchClient() { final ClientConfiguration clientConfiguration = ClientConfiguration.builder() .connectedTo("localhost:9200") .withBasicAuth("elastic","fantong") .build(); return RestClients.create(clientConfiguration).rest(); } }添加保存实体
@document(indexName = "es_store") @Data public class EsStoreEntity { @GeoPointField @Field(value = "location") private GeoPoint location; @Id private Long id; @ApiModelProperty(value = "店铺名字") @Field(value = "store_name") private String storeName; }添加jpa实现类
@query是json数据,可用map转换后自己模拟
@Repository public interface EsStoreRepository extends ElasticsearchRepository保存模拟数据{ @Query("{"bool":{"filter":{"geo_distance":{"distance":"?0","location":{"lon":"?1","lat":"?2"}}}}}") List mapperSelectByLocation(String distance,double lon,double lat); }
@Test public void saveTest(){ GeoPoint location=new GeoPoint(40.12,-71.34); EsStoreEntity esStoreEntity=new EsStoreEntity(); esStoreEntity.setId(1L); esStoreEntity.setLocation(location); esStoreEntity.setStoreName("小商店"); esStoreRepository.save(esStoreEntity); }查询测试数据
测试完成,查看到坐标被查询出来了,多试几个坐标
@Test public void getTest(){ Listkibana查询视图list= esStoreRepository.mapperSelectByLocation("200km",-70d,40d); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)