spring-data系列尝鲜,在尝试elasticsearch时,遇到一些问题,记录如下:
1.项目实体类采用lombok 形式注解,如果用IDE编译,需要install lombok 插件;
2.example 配置的client需要指向elasticsearch path,而我们常用的是http形式调用,可以配置TransportClient解决。如下代码所示:
// example 提供的方式
public NodeClientFactoryBean client() {
NodeClientFactoryBean bean = new NodeClientFactoryBean(true);
bean.setClusterName(UUID.randomUUID().toString());
bean.setEnableHttp(false);
bean.setPathData("target/elasticsearchTestData");
bean.setPathHome("src/test/resources/test-home-dir");
return bean;
}
@Bean
public TransportClientFactoryBean client() {
TransportClientFactoryBean bean = new TransportClientFactoryBean();
// 默认配置即可 127.0.0.1:9300
return bean;
}
......
另外:
example列出了geo 查询示例,涉及到地理位置检索查询可以快速实现,赞。
@Test
public void geoSpatialSearch() {
// 我的位置
GeoPoint startLocation = new GeoPoint(50.0646501D, 19.9449799D);
// 搜索的范围
String range = "330mi"; // or 530km
CriteriaQuery query = new CriteriaQuery(new Criteria("location").within(startLocation, range));
// find 530km 范围内的服务站点
List
result = operations.queryForList(query, Conference.class);
}