Skip to content

Commit 3b425e9

Browse files
committed
DATAES-317 - introduce query logging in ElasticsearchTemplate
1 parent d66b2a6 commit 3b425e9

File tree

1 file changed

+28
-17
lines changed

1 file changed

+28
-17
lines changed

src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import static org.elasticsearch.index.VersionType.*;
2020
import static org.elasticsearch.index.query.QueryBuilders.*;
2121
import static org.springframework.data.elasticsearch.core.MappingBuilder.*;
22-
import static org.springframework.util.CollectionUtils.isEmpty;
22+
import static org.springframework.util.CollectionUtils.*;
2323

2424
import java.io.BufferedReader;
2525
import java.io.IOException;
@@ -52,6 +52,7 @@
5252
import org.elasticsearch.action.index.IndexRequestBuilder;
5353
import org.elasticsearch.action.search.SearchRequestBuilder;
5454
import org.elasticsearch.action.search.SearchResponse;
55+
import org.elasticsearch.action.search.SearchScrollRequestBuilder;
5556
import org.elasticsearch.action.update.UpdateRequestBuilder;
5657
import org.elasticsearch.action.update.UpdateResponse;
5758
import org.elasticsearch.client.Client;
@@ -136,7 +137,8 @@
136137
*/
137138
public class ElasticsearchTemplate implements ElasticsearchOperations, ApplicationContextAware {
138139

139-
private static final Logger logger = LoggerFactory.getLogger(ElasticsearchTemplate.class);
140+
private static final Logger QUERY_LOGGER = LoggerFactory.getLogger("org.springframework.data.elasticsearch.core.QUERY");
141+
private static final Logger LOGGER = LoggerFactory.getLogger(ElasticsearchTemplate.class);
140142
private static final String FIELD_SCORE = "_score";
141143

142144
private Client client;
@@ -208,7 +210,7 @@ public <T> boolean putMapping(Class<T> clazz) {
208210
return putMapping(clazz, mappings);
209211
}
210212
} else {
211-
logger.info("mappingPath in @Mapping has to be defined. Building mappings using @Field");
213+
LOGGER.info("mappingPath in @Mapping has to be defined. Building mappings using @Field");
212214
}
213215
}
214216
ElasticsearchPersistentEntity<T> persistentEntity = getPersistentEntityFor(clazz);
@@ -339,7 +341,7 @@ public <T> List<String> queryForIds(SearchQuery query) {
339341
if (query.getFilter() != null) {
340342
request.setPostFilter(query.getFilter());
341343
}
342-
SearchResponse response = getSearchResponse(request.execute());
344+
SearchResponse response = getSearchResponse(request);
343345
return extractIds(response);
344346
}
345347

@@ -362,11 +364,8 @@ public <T> Page<T> queryForPage(CriteriaQuery criteriaQuery, Class<T> clazz) {
362364

363365
if (elasticsearchFilter != null)
364366
searchRequestBuilder.setPostFilter(elasticsearchFilter);
365-
if (logger.isDebugEnabled()) {
366-
logger.debug("doSearch query:\n" + searchRequestBuilder.toString());
367-
}
368367

369-
SearchResponse response = getSearchResponse(searchRequestBuilder.execute());
368+
SearchResponse response = getSearchResponse(searchRequestBuilder);
370369
return resultsMapper.mapResults(response, clazz, criteriaQuery.getPageable());
371370
}
372371

@@ -377,7 +376,7 @@ public <T> Page<T> queryForPage(StringQuery query, Class<T> clazz) {
377376

378377
@Override
379378
public <T> Page<T> queryForPage(StringQuery query, Class<T> clazz, SearchResultMapper mapper) {
380-
SearchResponse response = getSearchResponse(prepareSearch(query, clazz).setQuery(wrapperQuery(query.getSource())).execute());
379+
SearchResponse response = getSearchResponse(prepareSearch(query, clazz).setQuery(wrapperQuery(query.getSource())));
381380
return mapper.mapResults(response, clazz, query.getPageable());
382381
}
383382

@@ -793,7 +792,7 @@ private SearchResponse doScroll(SearchRequestBuilder requestBuilder, CriteriaQue
793792
requestBuilder.setPostFilter(elasticsearchFilter);
794793
}
795794

796-
return getSearchResponse(requestBuilder.execute());
795+
return getSearchResponse(requestBuilder);
797796
}
798797

799798
private SearchResponse doScroll(SearchRequestBuilder requestBuilder, SearchQuery searchQuery) {
@@ -805,7 +804,7 @@ private SearchResponse doScroll(SearchRequestBuilder requestBuilder, SearchQuery
805804
requestBuilder.setPostFilter(searchQuery.getFilter());
806805
}
807806

808-
return getSearchResponse(requestBuilder.setQuery(searchQuery.getQuery()).execute());
807+
return getSearchResponse(requestBuilder.setQuery(searchQuery.getQuery()));
809808
}
810809

811810
public <T> Page<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz) {
@@ -830,13 +829,13 @@ public <T> Page<T> startScroll(long scrollTimeInMillis, CriteriaQuery criteriaQu
830829

831830
public <T> Page<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz) {
832831
SearchResponse response = getSearchResponse(client.prepareSearchScroll(scrollId)
833-
.setScroll(TimeValue.timeValueMillis(scrollTimeInMillis)).execute());
832+
.setScroll(TimeValue.timeValueMillis(scrollTimeInMillis)));
834833
return resultsMapper.mapResults(response, clazz, Pageable.unpaged());
835834
}
836835

837836
public <T> Page<T> continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class<T> clazz, SearchResultMapper mapper) {
838837
SearchResponse response = getSearchResponse(client.prepareSearchScroll(scrollId)
839-
.setScroll(TimeValue.timeValueMillis(scrollTimeInMillis)).execute());
838+
.setScroll(TimeValue.timeValueMillis(scrollTimeInMillis)));
840839
return mapper.mapResults(response, clazz, Pageable.unpaged());
841840
}
842841

@@ -931,7 +930,19 @@ private SearchResponse doSearch(SearchRequestBuilder searchRequest, SearchQuery
931930
searchRequest.addAggregation(aggregatedFacet.getFacet());
932931
}
933932
}
934-
return getSearchResponse(searchRequest.setQuery(searchQuery.getQuery()).execute());
933+
return getSearchResponse(searchRequest.setQuery(searchQuery.getQuery()));
934+
}
935+
936+
private SearchResponse getSearchResponse(SearchScrollRequestBuilder requestBuilder) {
937+
if (QUERY_LOGGER.isDebugEnabled())
938+
QUERY_LOGGER.debug(requestBuilder.toString());
939+
return getSearchResponse(requestBuilder.execute());
940+
}
941+
942+
private SearchResponse getSearchResponse(SearchRequestBuilder requestBuilder) {
943+
if (QUERY_LOGGER.isDebugEnabled())
944+
QUERY_LOGGER.debug(requestBuilder.toString());
945+
return getSearchResponse(requestBuilder.execute());
935946
}
936947

937948
private SearchResponse getSearchResponse(ActionFuture<SearchResponse> response) {
@@ -951,7 +962,7 @@ private <T> boolean createIndexWithSettings(Class<T> clazz) {
951962
return createIndex(getPersistentEntityFor(clazz).getIndexName(), settings);
952963
}
953964
} else {
954-
logger.info("settingPath in @Setting has to be defined. Using default instead.");
965+
LOGGER.info("settingPath in @Setting has to be defined. Using default instead.");
955966
}
956967
}
957968
return createIndex(getPersistentEntityFor(clazz).getIndexName(), getDefaultSettings(getPersistentEntityFor(clazz)));
@@ -1254,14 +1265,14 @@ public static String readFileFromClasspath(String url) {
12541265
stringBuilder.append(line).append(lineSeparator);
12551266
}
12561267
} catch (Exception e) {
1257-
logger.debug(String.format("Failed to load file from url: %s: %s", url, e.getMessage()));
1268+
LOGGER.debug(String.format("Failed to load file from url: %s: %s", url, e.getMessage()));
12581269
return null;
12591270
} finally {
12601271
if (bufferedReader != null)
12611272
try {
12621273
bufferedReader.close();
12631274
} catch (IOException e) {
1264-
logger.debug(String.format("Unable to close buffered reader.. %s", e.getMessage()));
1275+
LOGGER.debug(String.format("Unable to close buffered reader.. %s", e.getMessage()));
12651276
}
12661277
}
12671278

0 commit comments

Comments
 (0)