diff --git a/persistence-modules/spring-data-elasticsearch/pom.xml b/persistence-modules/spring-data-elasticsearch/pom.xml
index 3446528323..f322e46c0e 100644
--- a/persistence-modules/spring-data-elasticsearch/pom.xml
+++ b/persistence-modules/spring-data-elasticsearch/pom.xml
@@ -25,6 +25,12 @@
${spring.version}
+
+ org.springframework
+ spring-web
+ ${spring.version}
+
+
org.springframework.data
spring-data-elasticsearch
@@ -32,8 +38,8 @@
- org.elasticsearch
- elasticsearch
+ org.elasticsearch.client
+ elasticsearch-rest-high-level-client
${elasticsearch.version}
@@ -49,15 +55,9 @@
- com.vividsolutions
- jts
- ${jts.version}
-
-
- xerces
- xercesImpl
-
-
+ org.locationtech.jts
+ jts-core
+ 1.16.1
@@ -66,12 +66,6 @@
${log4j.version}
-
- org.elasticsearch.client
- transport
- ${elasticsearch.version}
-
-
org.springframework
spring-test
@@ -88,9 +82,9 @@
- 3.0.8.RELEASE
+ 3.2.6.RELEASE
4.5.2
- 5.6.0
+ 7.6.2
1.2.47
0.6
1.13
diff --git a/persistence-modules/spring-data-elasticsearch/src/main/java/com/baeldung/spring/data/es/config/Config.java b/persistence-modules/spring-data-elasticsearch/src/main/java/com/baeldung/spring/data/es/config/Config.java
index e6ce795b45..f98342486f 100644
--- a/persistence-modules/spring-data-elasticsearch/src/main/java/com/baeldung/spring/data/es/config/Config.java
+++ b/persistence-modules/spring-data-elasticsearch/src/main/java/com/baeldung/spring/data/es/config/Config.java
@@ -1,19 +1,13 @@
package com.baeldung.spring.data.es.config;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-
-import org.elasticsearch.client.Client;
-import org.elasticsearch.client.transport.TransportClient;
-import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.transport.InetSocketTransportAddress;
-import org.elasticsearch.transport.client.PreBuiltTransportClient;
-import org.springframework.beans.factory.annotation.Value;
+import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
+import org.springframework.data.elasticsearch.client.ClientConfiguration;
+import org.springframework.data.elasticsearch.client.RestClients;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
-import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
+import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
@Configuration
@@ -21,30 +15,15 @@ import org.springframework.data.elasticsearch.repository.config.EnableElasticsea
@ComponentScan(basePackages = { "com.baeldung.spring.data.es.service" })
public class Config {
- @Value("${elasticsearch.home:/usr/local/Cellar/elasticsearch/5.6.0}")
- private String elasticsearchHome;
+ @Bean
+ RestHighLevelClient client() {
+ ClientConfiguration clientConfiguration = ClientConfiguration.builder().connectedTo("localhost:9200").build();
- @Value("${elasticsearch.cluster.name:elasticsearch}")
- private String clusterName;
+ return RestClients.create(clientConfiguration).rest();
+ }
- @Bean
- public Client client() {
- TransportClient client = null;
- try {
- final Settings elasticsearchSettings = Settings.builder()
- .put("client.transport.sniff", true)
- .put("path.home", elasticsearchHome)
- .put("cluster.name", clusterName).build();
- client = new PreBuiltTransportClient(elasticsearchSettings);
- client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
- } catch (UnknownHostException e) {
- e.printStackTrace();
- }
- return client;
- }
-
- @Bean
- public ElasticsearchOperations elasticsearchTemplate() {
- return new ElasticsearchTemplate(client());
- }
+ @Bean
+ public ElasticsearchOperations elasticsearchTemplate() {
+ return new ElasticsearchRestTemplate(client());
+ }
}
diff --git a/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/elasticsearch/ElasticSearchManualTest.java b/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/elasticsearch/ElasticSearchManualTest.java
index e43dcdf43e..6dc1c42dc1 100644
--- a/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/elasticsearch/ElasticSearchManualTest.java
+++ b/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/elasticsearch/ElasticSearchManualTest.java
@@ -3,7 +3,6 @@ package com.baeldung.elasticsearch;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
-import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -11,24 +10,28 @@ import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
+import com.alibaba.fastjson.JSON;
+
import org.elasticsearch.action.DocWriteResponse.Result;
+import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.delete.DeleteResponse;
+import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
+import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchType;
-import org.elasticsearch.client.Client;
-import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.transport.InetSocketTransportAddress;
+import org.elasticsearch.client.RequestOptions;
+import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
-import org.elasticsearch.transport.client.PreBuiltTransportClient;
+import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.junit.Before;
import org.junit.Test;
-
-import com.alibaba.fastjson.JSON;
+import org.springframework.data.elasticsearch.client.ClientConfiguration;
+import org.springframework.data.elasticsearch.client.RestClients;
/**
*
@@ -39,7 +42,7 @@ import com.alibaba.fastjson.JSON;
*/
public class ElasticSearchManualTest {
private List listOfPersons = new ArrayList<>();
- private Client client = null;
+ private RestHighLevelClient client = null;
@Before
public void setUp() throws UnknownHostException {
@@ -48,47 +51,44 @@ public class ElasticSearchManualTest {
listOfPersons.add(person1);
listOfPersons.add(person2);
- client = new PreBuiltTransportClient(Settings.builder().put("client.transport.sniff", true)
- .put("cluster.name","elasticsearch").build())
- .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
+ ClientConfiguration clientConfiguration = ClientConfiguration.builder().connectedTo("localhost:9200").build();
+ client = RestClients.create(clientConfiguration).rest();
}
@Test
- public void givenJsonString_whenJavaObject_thenIndexDocument() {
+ public void givenJsonString_whenJavaObject_thenIndexDocument() throws Exception {
String jsonObject = "{\"age\":20,\"dateOfBirth\":1471466076564,\"fullName\":\"John Doe\"}";
- IndexResponse response = client
- .prepareIndex("people", "Doe")
- .setSource(jsonObject, XContentType.JSON)
- .get();
- String index = response.getIndex();
- String type = response.getType();
+ IndexRequest request = new IndexRequest("people");
+ request.source(jsonObject, XContentType.JSON);
+ IndexResponse response = client.index(request, RequestOptions.DEFAULT);
+ String index = response.getIndex();
+
assertEquals(Result.CREATED, response.getResult());
assertEquals(index, "people");
- assertEquals(type, "Doe");
}
@Test
- public void givenDocumentId_whenJavaObject_thenDeleteDocument() {
+ public void givenDocumentId_whenJavaObject_thenDeleteDocument() throws Exception {
String jsonObject = "{\"age\":10,\"dateOfBirth\":1471455886564,\"fullName\":\"Johan Doe\"}";
- IndexResponse response = client
- .prepareIndex("people", "Doe")
- .setSource(jsonObject, XContentType.JSON)
- .get();
+ IndexRequest indexRequest = new IndexRequest("people");
+ indexRequest.source(jsonObject, XContentType.JSON);
+
+ IndexResponse response = client.index(indexRequest, RequestOptions.DEFAULT);
String id = response.getId();
- DeleteResponse deleteResponse = client
- .prepareDelete("people", "Doe", id)
- .get();
+
+ DeleteRequest deleteRequest = new DeleteRequest("people");
+ deleteRequest.id(id);
+
+ DeleteResponse deleteResponse = client.delete(deleteRequest, RequestOptions.DEFAULT);
assertEquals(Result.DELETED,deleteResponse.getResult());
}
@Test
- public void givenSearchRequest_whenMatchAll_thenReturnAllResults() {
- SearchResponse response = client
- .prepareSearch()
- .execute()
- .actionGet();
+ public void givenSearchRequest_whenMatchAll_thenReturnAllResults() throws Exception {
+ SearchRequest searchRequest = new SearchRequest();
+ SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
SearchHit[] searchHits = response
.getHits()
.getHits();
@@ -98,42 +98,42 @@ public class ElasticSearchManualTest {
}
@Test
- public void givenSearchParameters_thenReturnResults() {
- SearchResponse response = client
- .prepareSearch()
- .setTypes()
- .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
- .setPostFilter(QueryBuilders
- .rangeQuery("age")
- .from(5)
- .to(15))
- .setFrom(0)
- .setSize(60)
- .setExplain(true)
- .execute()
- .actionGet();
+ public void givenSearchParameters_thenReturnResults() throws Exception {
+ SearchSourceBuilder builder = new SearchSourceBuilder()
+ .postFilter(QueryBuilders.rangeQuery("age").from(5).to(15))
+ .from(0)
+ .size(60)
+ .explain(true);
+
+ SearchRequest searchRequest = new SearchRequest();
+ searchRequest.searchType(SearchType.DFS_QUERY_THEN_FETCH);
+ searchRequest.source(builder);
+
+ SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
- SearchResponse response2 = client
- .prepareSearch()
- .setTypes()
- .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
- .setPostFilter(QueryBuilders.simpleQueryStringQuery("+John -Doe OR Janette"))
- .setFrom(0)
- .setSize(60)
- .setExplain(true)
- .execute()
- .actionGet();
+ builder = new SearchSourceBuilder()
+ .postFilter(QueryBuilders.simpleQueryStringQuery("+John -Doe OR Janette"))
+ .from(0)
+ .size(60)
+ .explain(true);
+
+ searchRequest = new SearchRequest();
+ searchRequest.searchType(SearchType.DFS_QUERY_THEN_FETCH);
+ searchRequest.source(builder);
+
+ SearchResponse response2 = client.search(searchRequest, RequestOptions.DEFAULT);
+
+ builder = new SearchSourceBuilder()
+ .postFilter(QueryBuilders.matchQuery("John", "Name*"))
+ .from(0)
+ .size(60)
+ .explain(true);
+ searchRequest = new SearchRequest();
+ searchRequest.searchType(SearchType.DFS_QUERY_THEN_FETCH);
+ searchRequest.source(builder);
+
+ SearchResponse response3 = client.search(searchRequest, RequestOptions.DEFAULT);
- SearchResponse response3 = client
- .prepareSearch()
- .setTypes()
- .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
- .setPostFilter(QueryBuilders.matchQuery("John", "Name*"))
- .setFrom(0)
- .setSize(60)
- .setExplain(true)
- .execute()
- .actionGet();
response2.getHits();
response3.getHits();
@@ -151,10 +151,11 @@ public class ElasticSearchManualTest {
.field("salary", "11500")
.field("age", "10")
.endObject();
- IndexResponse response = client
- .prepareIndex("people", "Doe")
- .setSource(builder)
- .get();
+
+ IndexRequest indexRequest = new IndexRequest("people");
+ indexRequest.source(builder);
+
+ IndexResponse response = client.index(indexRequest, RequestOptions.DEFAULT);
assertEquals(Result.CREATED, response.getResult());
}
diff --git a/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/elasticsearch/GeoQueriesManualTest.java b/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/elasticsearch/GeoQueriesManualTest.java
index f9a42050b6..698f605eeb 100644
--- a/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/elasticsearch/GeoQueriesManualTest.java
+++ b/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/elasticsearch/GeoQueriesManualTest.java
@@ -1,4 +1,5 @@
package com.baeldung.elasticsearch;
+
import static org.junit.Assert.assertTrue;
import java.io.IOException;
@@ -12,8 +13,7 @@ import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.common.geo.GeoPoint;
-import org.elasticsearch.common.geo.ShapeRelation;
-import org.elasticsearch.common.geo.builders.ShapeBuilders;
+import org.elasticsearch.common.geo.builders.EnvelopeBuilder;
import org.elasticsearch.common.unit.DistanceUnit;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.query.QueryBuilder;
@@ -23,13 +23,13 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.locationtech.jts.geom.Coordinate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.baeldung.spring.data.es.config.Config;
-import com.vividsolutions.jts.geom.Coordinate;
/**
*
@@ -75,13 +75,12 @@ public class GeoQueriesManualTest {
.indices()
.prepareRefresh(WONDERS_OF_WORLD)
.get();
-
- Coordinate topLeft =new Coordinate(74, 31.2);
- Coordinate bottomRight =new Coordinate(81.1, 24);
+
+ Coordinate topLeft = new Coordinate(74, 31.2);
+ Coordinate bottomRight = new Coordinate(81.1, 24);
QueryBuilder qb = QueryBuilders
- .geoShapeQuery("region", ShapeBuilders.newEnvelope(topLeft, bottomRight))
- .relation(ShapeRelation.WITHIN);
-
+ .geoShapeQuery("region", new EnvelopeBuilder(topLeft, bottomRight).buildGeometry());
+ //.relation(ShapeRelation.WITHIN));
SearchResponse searchResponse = client.prepareSearch(WONDERS_OF_WORLD)
.setTypes(WONDERS)
diff --git a/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/spring/data/es/ElasticSearchQueryManualTest.java b/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/spring/data/es/ElasticSearchQueryManualTest.java
index 5e24d8398c..0125a4b624 100644
--- a/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/spring/data/es/ElasticSearchQueryManualTest.java
+++ b/persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/spring/data/es/ElasticSearchQueryManualTest.java
@@ -22,6 +22,7 @@ import org.elasticsearch.index.query.MultiMatchQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.search.aggregations.Aggregation;
import org.elasticsearch.search.aggregations.AggregationBuilders;
+import org.elasticsearch.search.aggregations.BucketOrder;
import org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation;
import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
@@ -159,7 +160,7 @@ public class ElasticSearchQueryManualTest {
@Test
public void givenNotAnalyzedQuery_whenMakeAggregationOnTermCount_thenEachTermCountsIndividually() {
final TermsAggregationBuilder aggregation = AggregationBuilders.terms("top_tags").field("tags")
- .order(Terms.Order.count(false));
+ .order(BucketOrder.count(false));
final SearchResponse response = client.prepareSearch("blog").setTypes("article").addAggregation(aggregation)
.execute().actionGet();