spring-data-examples之elasticsearch嘗試
阿新 • • 發佈:2019-01-27
spring-data系列嚐鮮,在嘗試elasticsearch時,遇到一些問題,記錄如下:
1.專案實體類採用lombok 形式註解,如果用IDE編譯,需要install lombok 外掛;
2.example 配置的client需要指向elasticsearch path,而我們常用的是http形式呼叫,可以配置TransportClient解決。如下程式碼所示:
3.瀏覽器restful 測試,需要註釋ApplicationConfiguration @PreDestroy,訪問 http://127.0.0.1:9200/conference-index,可以進行對應的查詢操作。// 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); }