mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-28 14:52:20 +00:00
DATAES-317 - Introduce query logging in ElasticsearchTemplate.
Original pull request: #180.
This commit is contained in:
parent
e58c43f391
commit
143a359eca
@ -19,7 +19,7 @@ import static org.elasticsearch.client.Requests.*;
|
|||||||
import static org.elasticsearch.index.VersionType.*;
|
import static org.elasticsearch.index.VersionType.*;
|
||||||
import static org.elasticsearch.index.query.QueryBuilders.*;
|
import static org.elasticsearch.index.query.QueryBuilders.*;
|
||||||
import static org.springframework.data.elasticsearch.core.MappingBuilder.*;
|
import static org.springframework.data.elasticsearch.core.MappingBuilder.*;
|
||||||
import static org.springframework.util.CollectionUtils.isEmpty;
|
import static org.springframework.util.CollectionUtils.*;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -52,6 +52,7 @@ import org.elasticsearch.action.get.MultiGetResponse;
|
|||||||
import org.elasticsearch.action.index.IndexRequestBuilder;
|
import org.elasticsearch.action.index.IndexRequestBuilder;
|
||||||
import org.elasticsearch.action.search.SearchRequestBuilder;
|
import org.elasticsearch.action.search.SearchRequestBuilder;
|
||||||
import org.elasticsearch.action.search.SearchResponse;
|
import org.elasticsearch.action.search.SearchResponse;
|
||||||
|
import org.elasticsearch.action.search.SearchScrollRequestBuilder;
|
||||||
import org.elasticsearch.action.update.UpdateRequestBuilder;
|
import org.elasticsearch.action.update.UpdateRequestBuilder;
|
||||||
import org.elasticsearch.action.update.UpdateResponse;
|
import org.elasticsearch.action.update.UpdateResponse;
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
@ -136,7 +137,8 @@ import org.springframework.util.StringUtils;
|
|||||||
*/
|
*/
|
||||||
public class ElasticsearchTemplate implements ElasticsearchOperations, ApplicationContextAware {
|
public class ElasticsearchTemplate implements ElasticsearchOperations, ApplicationContextAware {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(ElasticsearchTemplate.class);
|
private static final Logger QUERY_LOGGER = LoggerFactory.getLogger("org.springframework.data.elasticsearch.core.QUERY");
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(ElasticsearchTemplate.class);
|
||||||
private static final String FIELD_SCORE = "_score";
|
private static final String FIELD_SCORE = "_score";
|
||||||
|
|
||||||
private Client client;
|
private Client client;
|
||||||
@ -208,7 +210,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
|
|||||||
return putMapping(clazz, mappings);
|
return putMapping(clazz, mappings);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.info("mappingPath in @Mapping has to be defined. Building mappings using @Field");
|
LOGGER.info("mappingPath in @Mapping has to be defined. Building mappings using @Field");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ElasticsearchPersistentEntity<T> persistentEntity = getPersistentEntityFor(clazz);
|
ElasticsearchPersistentEntity<T> persistentEntity = getPersistentEntityFor(clazz);
|
||||||
@ -339,7 +341,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
|
|||||||
if (query.getFilter() != null) {
|
if (query.getFilter() != null) {
|
||||||
request.setPostFilter(query.getFilter());
|
request.setPostFilter(query.getFilter());
|
||||||
}
|
}
|
||||||
SearchResponse response = getSearchResponse(request.execute());
|
SearchResponse response = getSearchResponse(request);
|
||||||
return extractIds(response);
|
return extractIds(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -362,11 +364,8 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
|
|||||||
|
|
||||||
if (elasticsearchFilter != null)
|
if (elasticsearchFilter != null)
|
||||||
searchRequestBuilder.setPostFilter(elasticsearchFilter);
|
searchRequestBuilder.setPostFilter(elasticsearchFilter);
|
||||||
if (logger.isDebugEnabled()) {
|
|
||||||
logger.debug("doSearch query:\n" + searchRequestBuilder.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
SearchResponse response = getSearchResponse(searchRequestBuilder.execute());
|
SearchResponse response = getSearchResponse(searchRequestBuilder);
|
||||||
return resultsMapper.mapResults(response, clazz, criteriaQuery.getPageable());
|
return resultsMapper.mapResults(response, clazz, criteriaQuery.getPageable());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -377,7 +376,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> Page<T> queryForPage(StringQuery query, Class<T> clazz, SearchResultMapper mapper) {
|
public <T> Page<T> queryForPage(StringQuery query, Class<T> clazz, SearchResultMapper mapper) {
|
||||||
SearchResponse response = getSearchResponse(prepareSearch(query, clazz).setQuery(wrapperQuery(query.getSource())).execute());
|
SearchResponse response = getSearchResponse(prepareSearch(query, clazz).setQuery(wrapperQuery(query.getSource())));
|
||||||
return mapper.mapResults(response, clazz, query.getPageable());
|
return mapper.mapResults(response, clazz, query.getPageable());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -793,7 +792,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
|
|||||||
requestBuilder.setPostFilter(elasticsearchFilter);
|
requestBuilder.setPostFilter(elasticsearchFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
return getSearchResponse(requestBuilder.execute());
|
return getSearchResponse(requestBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchResponse doScroll(SearchRequestBuilder requestBuilder, SearchQuery searchQuery) {
|
private SearchResponse doScroll(SearchRequestBuilder requestBuilder, SearchQuery searchQuery) {
|
||||||
@ -805,7 +804,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
|
|||||||
requestBuilder.setPostFilter(searchQuery.getFilter());
|
requestBuilder.setPostFilter(searchQuery.getFilter());
|
||||||
}
|
}
|
||||||
|
|
||||||
return getSearchResponse(requestBuilder.setQuery(searchQuery.getQuery()).execute());
|
return getSearchResponse(requestBuilder.setQuery(searchQuery.getQuery()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Page<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz) {
|
public <T> Page<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz) {
|
||||||
@ -931,7 +930,16 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
|
|||||||
searchRequest.addAggregation(aggregatedFacet.getFacet());
|
searchRequest.addAggregation(aggregatedFacet.getFacet());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return getSearchResponse(searchRequest.setQuery(searchQuery.getQuery()).execute());
|
return getSearchResponse(searchRequest.setQuery(searchQuery.getQuery()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private SearchResponse getSearchResponse(SearchRequestBuilder requestBuilder) {
|
||||||
|
|
||||||
|
if (QUERY_LOGGER.isDebugEnabled()) {
|
||||||
|
QUERY_LOGGER.debug(requestBuilder.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
return getSearchResponse(requestBuilder.execute());
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchResponse getSearchResponse(ActionFuture<SearchResponse> response) {
|
private SearchResponse getSearchResponse(ActionFuture<SearchResponse> response) {
|
||||||
@ -951,7 +959,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
|
|||||||
return createIndex(getPersistentEntityFor(clazz).getIndexName(), settings);
|
return createIndex(getPersistentEntityFor(clazz).getIndexName(), settings);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.info("settingPath in @Setting has to be defined. Using default instead.");
|
LOGGER.info("settingPath in @Setting has to be defined. Using default instead.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return createIndex(getPersistentEntityFor(clazz).getIndexName(), getDefaultSettings(getPersistentEntityFor(clazz)));
|
return createIndex(getPersistentEntityFor(clazz).getIndexName(), getDefaultSettings(getPersistentEntityFor(clazz)));
|
||||||
@ -1254,14 +1262,14 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
|
|||||||
stringBuilder.append(line).append(lineSeparator);
|
stringBuilder.append(line).append(lineSeparator);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.debug(String.format("Failed to load file from url: %s: %s", url, e.getMessage()));
|
LOGGER.debug(String.format("Failed to load file from url: %s: %s", url, e.getMessage()));
|
||||||
return null;
|
return null;
|
||||||
} finally {
|
} finally {
|
||||||
if (bufferedReader != null)
|
if (bufferedReader != null)
|
||||||
try {
|
try {
|
||||||
bufferedReader.close();
|
bufferedReader.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
logger.debug(String.format("Unable to close buffered reader.. %s", e.getMessage()));
|
LOGGER.debug(String.format("Unable to close buffered reader.. %s", e.getMessage()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user