Skip to content

Commit 845ed76

Browse files
JAVA-16308 Potential issue in Introduction to Spring Data Elasticsearch article (#13286)
* JAVA-16308 Potential issue in Introduction to Spring Data Elasticsearch article * JAVA-16308 Update code as per Review Comments
1 parent 618f549 commit 845ed76

3 files changed

Lines changed: 22 additions & 27 deletions

File tree

persistence-modules/spring-data-elasticsearch/src/main/java/com/baeldung/spring/data/es/config/Config.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,22 @@
66
import org.springframework.context.annotation.Configuration;
77
import org.springframework.data.elasticsearch.client.ClientConfiguration;
88
import org.springframework.data.elasticsearch.client.RestClients;
9-
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
10-
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
9+
import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;
1110
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
1211

1312
@Configuration
1413
@EnableElasticsearchRepositories(basePackages = "com.baeldung.spring.data.es.repository")
1514
@ComponentScan(basePackages = { "com.baeldung.spring.data.es.service" })
16-
public class Config {
15+
public class Config extends AbstractElasticsearchConfiguration {
1716

1817
@Bean
19-
RestHighLevelClient client() {
18+
@Override
19+
public RestHighLevelClient elasticsearchClient() {
2020
ClientConfiguration clientConfiguration = ClientConfiguration.builder()
2121
.connectedTo("localhost:9200")
2222
.build();
2323

2424
return RestClients.create(clientConfiguration)
2525
.rest();
2626
}
27-
28-
@Bean
29-
public ElasticsearchOperations elasticsearchTemplate() {
30-
return new ElasticsearchRestTemplate(client());
31-
}
3227
}

persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/spring/data/es/ElasticSearchManualTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.springframework.beans.factory.annotation.Autowired;
2323
import org.springframework.data.domain.Page;
2424
import org.springframework.data.domain.PageRequest;
25-
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
25+
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
2626
import org.springframework.data.elasticsearch.core.SearchHits;
2727
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
2828
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
@@ -41,7 +41,7 @@
4141
public class ElasticSearchManualTest {
4242

4343
@Autowired
44-
private ElasticsearchRestTemplate elasticsearchTemplate;
44+
private ElasticsearchOperations elasticsearchOperations;
4545

4646
@Autowired
4747
private ArticleRepository articleRepository;
@@ -117,7 +117,7 @@ public void givenPersistedArticles_whenUseRegexQuery_thenRightArticlesFound() {
117117
final Query searchQuery = new NativeSearchQueryBuilder().withFilter(regexpQuery("title", ".*data.*"))
118118
.build();
119119

120-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
120+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
121121

122122
assertEquals(1, articles.getTotalHits());
123123
}
@@ -126,7 +126,7 @@ public void givenPersistedArticles_whenUseRegexQuery_thenRightArticlesFound() {
126126
public void givenSavedDoc_whenTitleUpdated_thenCouldFindByUpdatedTitle() {
127127
final Query searchQuery = new NativeSearchQueryBuilder().withQuery(fuzzyQuery("title", "serch"))
128128
.build();
129-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
129+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
130130

131131
assertEquals(1, articles.getTotalHits());
132132

@@ -147,7 +147,7 @@ public void givenSavedDoc_whenDelete_thenRemovedFromIndex() {
147147

148148
final Query searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title", articleTitle).minimumShouldMatch("75%"))
149149
.build();
150-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
150+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
151151

152152
assertEquals(1, articles.getTotalHits());
153153
final long count = articleRepository.count();
@@ -162,7 +162,7 @@ public void givenSavedDoc_whenDelete_thenRemovedFromIndex() {
162162
public void givenSavedDoc_whenOneTermMatches_thenFindByTitle() {
163163
final Query searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title", "Search engines").operator(AND))
164164
.build();
165-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
165+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
166166
assertEquals(1, articles.getTotalHits());
167167
}
168168
}

persistence-modules/spring-data-elasticsearch/src/test/java/com/baeldung/spring/data/es/ElasticSearchQueryManualTest.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
import org.junit.Test;
4040
import org.junit.runner.RunWith;
4141
import org.springframework.beans.factory.annotation.Autowired;
42-
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
42+
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
4343
import org.springframework.data.elasticsearch.core.SearchHits;
4444
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
4545
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
@@ -58,7 +58,7 @@
5858
public class ElasticSearchQueryManualTest {
5959

6060
@Autowired
61-
private ElasticsearchRestTemplate elasticsearchTemplate;
61+
private ElasticsearchOperations elasticsearchOperations;
6262

6363
@Autowired
6464
private ArticleRepository articleRepository;
@@ -101,7 +101,7 @@ public void after() {
101101
public void givenFullTitle_whenRunMatchQuery_thenDocIsFound() {
102102
final NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title", "Search engines").operator(Operator.AND))
103103
.build();
104-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
104+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
105105
assertEquals(1, articles.getTotalHits());
106106
}
107107

@@ -110,7 +110,7 @@ public void givenOneTermFromTitle_whenRunMatchQuery_thenDocIsFound() {
110110
final NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title", "Engines Solutions"))
111111
.build();
112112

113-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
113+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
114114

115115
assertEquals(1, articles.getTotalHits());
116116
assertEquals("Search engines", articles.getSearchHit(0)
@@ -123,7 +123,7 @@ public void givenPartTitle_whenRunMatchQuery_thenDocIsFound() {
123123
final NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title", "elasticsearch data"))
124124
.build();
125125

126-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
126+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
127127

128128
assertEquals(3, articles.getTotalHits());
129129
}
@@ -133,14 +133,14 @@ public void givenFullTitle_whenRunMatchQueryOnVerbatimField_thenDocIsFound() {
133133
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title.verbatim", "Second Article About Elasticsearch"))
134134
.build();
135135

136-
SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
136+
SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
137137

138138
assertEquals(1, articles.getTotalHits());
139139

140140
searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("title.verbatim", "Second Article About"))
141141
.build();
142142

143-
articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
143+
articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
144144
assertEquals(0, articles.getTotalHits());
145145
}
146146

@@ -150,7 +150,7 @@ public void givenNestedObject_whenQueryByAuthorsName_thenFoundArticlesByThatAuth
150150

151151
final NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder)
152152
.build();
153-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
153+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
154154

155155
assertEquals(2, articles.getTotalHits());
156156
}
@@ -205,7 +205,7 @@ public void givenNotExactPhrase_whenUseSlop_thenQueryMatches() {
205205
final NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchPhraseQuery("title", "spring elasticsearch").slop(1))
206206
.build();
207207

208-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
208+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
209209

210210
assertEquals(1, articles.getTotalHits());
211211
}
@@ -217,7 +217,7 @@ public void givenPhraseWithType_whenUseFuzziness_thenQueryMatches() {
217217
.prefixLength(3))
218218
.build();
219219

220-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
220+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
221221

222222
assertEquals(1, articles.getTotalHits());
223223
}
@@ -229,7 +229,7 @@ public void givenMultimatchQuery_whenDoSearch_thenAllProvidedFieldsMatch() {
229229
.type(MultiMatchQueryBuilder.Type.BEST_FIELDS))
230230
.build();
231231

232-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
232+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
233233

234234
assertEquals(2, articles.getTotalHits());
235235
}
@@ -241,7 +241,7 @@ public void givenBoolQuery_whenQueryByAuthorsName_thenFoundArticlesByThatAuthorA
241241

242242
final NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder)
243243
.build();
244-
final SearchHits<Article> articles = elasticsearchTemplate.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
244+
final SearchHits<Article> articles = elasticsearchOperations.search(searchQuery, Article.class, IndexCoordinates.of("blog"));
245245

246246
assertEquals(2, articles.getTotalHits());
247247
}

0 commit comments

Comments
 (0)