From 6ecf4f6e78888562a35539577c879dd579d0febf Mon Sep 17 00:00:00 2001 From: GuenHamza Date: Fri, 16 Sep 2016 00:25:27 +0100 Subject: [PATCH] Add new QueryBuilder cases, factorize node client initialisation --- .../elasticsearch/ElasticSearchUnitTests.java | 55 ++++++++++++------- 1 file changed, 36 insertions(+), 19 deletions(-) diff --git a/elasticsearch/src/test/java/com/baeldung/elasticsearch/ElasticSearchUnitTests.java b/elasticsearch/src/test/java/com/baeldung/elasticsearch/ElasticSearchUnitTests.java index 9a6bfb19a2..7121495e5a 100644 --- a/elasticsearch/src/test/java/com/baeldung/elasticsearch/ElasticSearchUnitTests.java +++ b/elasticsearch/src/test/java/com/baeldung/elasticsearch/ElasticSearchUnitTests.java @@ -26,6 +26,8 @@ import com.alibaba.fastjson.JSON; public class ElasticSearchUnitTests { private List listOfPersons = new ArrayList(); String jsonString = null; + + Client client = null; @Before public void setUp() { @@ -34,15 +36,13 @@ public class ElasticSearchUnitTests { listOfPersons.add(person1); listOfPersons.add(person2); jsonString = JSON.toJSONString(listOfPersons); - System.out.println(jsonString); + Node node = nodeBuilder().clusterName("elasticsearch").client(true).node(); + client = node.client(); } @Test public void givenJsonString_whenJavaObject_thenIndexDocument() { String jsonObject = "{\"age\":20,\"dateOfBirth\":1471466076564,\"fullName\":\"John Doe\"}"; - - Node node = nodeBuilder().clusterName("elasticsearch").client(true).node(); - Client client = node.client(); IndexResponse response = client.prepareIndex("people", "Doe") .setSource(jsonObject).get(); String id = response.getId(); @@ -56,9 +56,6 @@ public class ElasticSearchUnitTests { @Test public void givenDocumentId_whenJavaObject_thenDeleteDocument() { String jsonObject = "{\"age\":10,\"dateOfBirth\":1471455886564,\"fullName\":\"Johan Doe\"}"; - - Node node = nodeBuilder().clusterName("elasticsearch").client(true).node(); - Client client = node.client(); IndexResponse response = client.prepareIndex("people", "Doe") .setSource(jsonObject).get(); String id = response.getId(); @@ -68,8 +65,6 @@ public class ElasticSearchUnitTests { @Test public void givenSearchRequest_whenMatchAll_thenReturnAllResults() { - Node node = nodeBuilder().clusterName("elasticsearch").client(true).node(); - Client client = node.client(); SearchResponse response = client.prepareSearch().execute().actionGet(); SearchHit[] searchHits = response.getHits().getHits(); List results = new ArrayList(); @@ -82,8 +77,7 @@ public class ElasticSearchUnitTests { @Test public void givenSearchParamters_thenReturnResults() { - Node node = nodeBuilder().clusterName("elasticsearch").client(true).node(); - Client client = node.client(); + boolean isExecutedSuccessfully = true; SearchResponse response = client.prepareSearch() .setTypes() .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) @@ -91,19 +85,42 @@ public class ElasticSearchUnitTests { .setFrom(0).setSize(60).setExplain(true) .execute() .actionGet(); - SearchHit[] searchHits = response.getHits().getHits(); - List results = new ArrayList(); - for(SearchHit hit : searchHits){ - String sourceAsString = hit.getSourceAsString(); - Person person = JSON.parseObject(sourceAsString, Person.class); - results.add(person); + + 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(); + + SearchResponse response3 = client.prepareSearch() + .setTypes() + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .setPostFilter(QueryBuilders.matchQuery( + "John", "Name*")) + .setFrom(0).setSize(60).setExplain(true) + .execute() + .actionGet(); + try { + response2.getHits(); + response3.getHits(); + SearchHit[] searchHits = response.getHits().getHits(); + List results = new ArrayList(); + for(SearchHit hit : searchHits){ + String sourceAsString = hit.getSourceAsString(); + Person person = JSON.parseObject(sourceAsString, Person.class); + results.add(person); + } + } catch (Exception e) { + isExecutedSuccessfully = false; } + assertTrue(isExecutedSuccessfully); } @Test public void givenContentBuilder_whenHelpers_thanIndexJson() throws IOException { - Node node = nodeBuilder().clusterName("elasticsearch").client(true).node(); - Client client = node.client(); XContentBuilder builder = XContentFactory.jsonBuilder() .startObject() .field("fullName", "Test")