mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-08 13:12:10 +00:00
parent
9c80dc9ae8
commit
c9b8b1af19
@ -174,8 +174,8 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate {
|
|||||||
|
|
||||||
Assert.notNull(query, "query must not be null");
|
Assert.notNull(query, "query must not be null");
|
||||||
|
|
||||||
DeleteByQueryRequest request = requestConverter.documentDeleteByQueryRequest(query, clazz, index,
|
DeleteByQueryRequest request = requestConverter.documentDeleteByQueryRequest(query, routingResolver.getRouting(),
|
||||||
getRefreshPolicy());
|
clazz, index, getRefreshPolicy());
|
||||||
|
|
||||||
DeleteByQueryResponse response = execute(client -> client.deleteByQuery(request));
|
DeleteByQueryResponse response = execute(client -> client.deleteByQuery(request));
|
||||||
|
|
||||||
@ -309,7 +309,8 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate {
|
|||||||
Assert.notNull(query, "query must not be null");
|
Assert.notNull(query, "query must not be null");
|
||||||
Assert.notNull(index, "index must not be null");
|
Assert.notNull(index, "index must not be null");
|
||||||
|
|
||||||
SearchRequest searchRequest = requestConverter.searchRequest(query, clazz, index, true);
|
SearchRequest searchRequest = requestConverter.searchRequest(query, routingResolver.getRouting(), clazz, index,
|
||||||
|
true);
|
||||||
|
|
||||||
SearchResponse<EntityAsMap> searchResponse = execute(client -> client.search(searchRequest, EntityAsMap.class));
|
SearchResponse<EntityAsMap> searchResponse = execute(client -> client.search(searchRequest, EntityAsMap.class));
|
||||||
|
|
||||||
@ -331,7 +332,8 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected <T> SearchHits<T> doSearch(Query query, Class<T> clazz, IndexCoordinates index) {
|
protected <T> SearchHits<T> doSearch(Query query, Class<T> clazz, IndexCoordinates index) {
|
||||||
SearchRequest searchRequest = requestConverter.searchRequest(query, clazz, index, false);
|
SearchRequest searchRequest = requestConverter.searchRequest(query, routingResolver.getRouting(), clazz, index,
|
||||||
|
false);
|
||||||
SearchResponse<EntityAsMap> searchResponse = execute(client -> client.search(searchRequest, EntityAsMap.class));
|
SearchResponse<EntityAsMap> searchResponse = execute(client -> client.search(searchRequest, EntityAsMap.class));
|
||||||
|
|
||||||
// noinspection DuplicatedCode
|
// noinspection DuplicatedCode
|
||||||
@ -343,7 +345,7 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected <T> SearchHits<T> doSearch(SearchTemplateQuery query, Class<T> clazz, IndexCoordinates index) {
|
protected <T> SearchHits<T> doSearch(SearchTemplateQuery query, Class<T> clazz, IndexCoordinates index) {
|
||||||
var searchTemplateRequest = requestConverter.searchTemplate(query, index);
|
var searchTemplateRequest = requestConverter.searchTemplate(query, routingResolver.getRouting(), index);
|
||||||
var searchTemplateResponse = execute(client -> client.searchTemplate(searchTemplateRequest, EntityAsMap.class));
|
var searchTemplateResponse = execute(client -> client.searchTemplate(searchTemplateRequest, EntityAsMap.class));
|
||||||
|
|
||||||
// noinspection DuplicatedCode
|
// noinspection DuplicatedCode
|
||||||
@ -374,7 +376,8 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate {
|
|||||||
Assert.notNull(query, "query must not be null");
|
Assert.notNull(query, "query must not be null");
|
||||||
Assert.notNull(query.getPageable(), "pageable of query must not be null.");
|
Assert.notNull(query.getPageable(), "pageable of query must not be null.");
|
||||||
|
|
||||||
SearchRequest request = requestConverter.searchRequest(query, clazz, index, false, scrollTimeInMillis);
|
SearchRequest request = requestConverter.searchRequest(query, routingResolver.getRouting(), clazz, index, false,
|
||||||
|
scrollTimeInMillis);
|
||||||
SearchResponse<EntityAsMap> response = execute(client -> client.search(request, EntityAsMap.class));
|
SearchResponse<EntityAsMap> response = execute(client -> client.search(request, EntityAsMap.class));
|
||||||
|
|
||||||
return getSearchScrollHits(clazz, index, response);
|
return getSearchScrollHits(clazz, index, response);
|
||||||
@ -492,7 +495,8 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate {
|
|||||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||||
private List<SearchHits<?>> doMultiSearch(List<MultiSearchQueryParameter> multiSearchQueryParameters) {
|
private List<SearchHits<?>> doMultiSearch(List<MultiSearchQueryParameter> multiSearchQueryParameters) {
|
||||||
|
|
||||||
MsearchRequest request = requestConverter.searchMsearchRequest(multiSearchQueryParameters);
|
MsearchRequest request = requestConverter.searchMsearchRequest(multiSearchQueryParameters,
|
||||||
|
routingResolver.getRouting());
|
||||||
|
|
||||||
MsearchResponse<EntityAsMap> msearchResponse = execute(client -> client.msearch(request, EntityAsMap.class));
|
MsearchResponse<EntityAsMap> msearchResponse = execute(client -> client.msearch(request, EntityAsMap.class));
|
||||||
List<MultiSearchResponseItem<EntityAsMap>> responseItems = msearchResponse.responses();
|
List<MultiSearchResponseItem<EntityAsMap>> responseItems = msearchResponse.responses();
|
||||||
|
@ -111,8 +111,7 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
return Mono.just(entity) //
|
return Mono.just(entity) //
|
||||||
.zipWith(//
|
.zipWith(//
|
||||||
Mono.from(execute((ClientCallback<Publisher<IndexResponse>>) client -> client.index(indexRequest))) //
|
Mono.from(execute((ClientCallback<Publisher<IndexResponse>>) client -> client.index(indexRequest))) //
|
||||||
.map(indexResponse -> new IndexResponseMetaData(
|
.map(indexResponse -> new IndexResponseMetaData(indexResponse.id(), //
|
||||||
indexResponse.id(), //
|
|
||||||
indexResponse.index(), //
|
indexResponse.index(), //
|
||||||
indexResponse.seqNo(), //
|
indexResponse.seqNo(), //
|
||||||
indexResponse.primaryTerm(), //
|
indexResponse.primaryTerm(), //
|
||||||
@ -171,8 +170,8 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
|
|
||||||
Assert.notNull(query, "query must not be null");
|
Assert.notNull(query, "query must not be null");
|
||||||
|
|
||||||
DeleteByQueryRequest request = requestConverter.documentDeleteByQueryRequest(query, entityType, index,
|
DeleteByQueryRequest request = requestConverter.documentDeleteByQueryRequest(query, routingResolver.getRouting(),
|
||||||
getRefreshPolicy());
|
entityType, index, getRefreshPolicy());
|
||||||
return Mono
|
return Mono
|
||||||
.from(execute((ClientCallback<Publisher<DeleteByQueryResponse>>) client -> client.deleteByQuery(request)))
|
.from(execute((ClientCallback<Publisher<DeleteByQueryResponse>>) client -> client.deleteByQuery(request)))
|
||||||
.map(responseConverter::byQueryResponse);
|
.map(responseConverter::byQueryResponse);
|
||||||
@ -391,7 +390,8 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
|
|
||||||
baseQuery.setPointInTime(new Query.PointInTime(psa.getPit(), pitKeepAlive));
|
baseQuery.setPointInTime(new Query.PointInTime(psa.getPit(), pitKeepAlive));
|
||||||
baseQuery.addSort(Sort.by("_shard_doc"));
|
baseQuery.addSort(Sort.by("_shard_doc"));
|
||||||
SearchRequest firstSearchRequest = requestConverter.searchRequest(baseQuery, clazz, index, false, true);
|
SearchRequest firstSearchRequest = requestConverter.searchRequest(baseQuery, routingResolver.getRouting(),
|
||||||
|
clazz, index, false, true);
|
||||||
|
|
||||||
return Mono.from(execute((ClientCallback<Publisher<ResponseBody<EntityAsMap>>>) client -> client
|
return Mono.from(execute((ClientCallback<Publisher<ResponseBody<EntityAsMap>>>) client -> client
|
||||||
.search(firstSearchRequest, EntityAsMap.class))).expand(entityAsMapSearchResponse -> {
|
.search(firstSearchRequest, EntityAsMap.class))).expand(entityAsMapSearchResponse -> {
|
||||||
@ -404,7 +404,8 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
List<Object> sortOptions = hits.get(hits.size() - 1).sort().stream().map(TypeUtils::toObject)
|
List<Object> sortOptions = hits.get(hits.size() - 1).sort().stream().map(TypeUtils::toObject)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
baseQuery.setSearchAfter(sortOptions);
|
baseQuery.setSearchAfter(sortOptions);
|
||||||
SearchRequest followSearchRequest = requestConverter.searchRequest(baseQuery, clazz, index, false, true);
|
SearchRequest followSearchRequest = requestConverter.searchRequest(baseQuery,
|
||||||
|
routingResolver.getRouting(), clazz, index, false, true);
|
||||||
return Mono.from(execute((ClientCallback<Publisher<ResponseBody<EntityAsMap>>>) client -> client
|
return Mono.from(execute((ClientCallback<Publisher<ResponseBody<EntityAsMap>>>) client -> client
|
||||||
.search(followSearchRequest, EntityAsMap.class)));
|
.search(followSearchRequest, EntityAsMap.class)));
|
||||||
});
|
});
|
||||||
@ -460,7 +461,8 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
Assert.notNull(query, "query must not be null");
|
Assert.notNull(query, "query must not be null");
|
||||||
Assert.notNull(index, "index must not be null");
|
Assert.notNull(index, "index must not be null");
|
||||||
|
|
||||||
SearchRequest searchRequest = requestConverter.searchRequest(query, entityType, index, true);
|
SearchRequest searchRequest = requestConverter.searchRequest(query, routingResolver.getRouting(), entityType, index,
|
||||||
|
true);
|
||||||
|
|
||||||
return Mono
|
return Mono
|
||||||
.from(execute((ClientCallback<Publisher<ResponseBody<EntityAsMap>>>) client -> client.search(searchRequest,
|
.from(execute((ClientCallback<Publisher<ResponseBody<EntityAsMap>>>) client -> client.search(searchRequest,
|
||||||
@ -470,7 +472,8 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
|
|
||||||
private Flux<SearchDocument> doFindBounded(Query query, Class<?> clazz, IndexCoordinates index) {
|
private Flux<SearchDocument> doFindBounded(Query query, Class<?> clazz, IndexCoordinates index) {
|
||||||
|
|
||||||
SearchRequest searchRequest = requestConverter.searchRequest(query, clazz, index, false, false);
|
SearchRequest searchRequest = requestConverter.searchRequest(query, routingResolver.getRouting(), clazz, index,
|
||||||
|
false, false);
|
||||||
|
|
||||||
return Mono
|
return Mono
|
||||||
.from(execute((ClientCallback<Publisher<ResponseBody<EntityAsMap>>>) client -> client.search(searchRequest,
|
.from(execute((ClientCallback<Publisher<ResponseBody<EntityAsMap>>>) client -> client.search(searchRequest,
|
||||||
@ -481,7 +484,7 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
|
|
||||||
private Flux<SearchDocument> doSearch(SearchTemplateQuery query, Class<?> clazz, IndexCoordinates index) {
|
private Flux<SearchDocument> doSearch(SearchTemplateQuery query, Class<?> clazz, IndexCoordinates index) {
|
||||||
|
|
||||||
var request = requestConverter.searchTemplate(query, index);
|
var request = requestConverter.searchTemplate(query, routingResolver.getRouting(), index);
|
||||||
|
|
||||||
return Mono
|
return Mono
|
||||||
.from(execute((ClientCallback<Publisher<SearchTemplateResponse<EntityAsMap>>>) client -> client
|
.from(execute((ClientCallback<Publisher<SearchTemplateResponse<EntityAsMap>>>) client -> client
|
||||||
@ -496,7 +499,8 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
Assert.notNull(query, "query must not be null");
|
Assert.notNull(query, "query must not be null");
|
||||||
Assert.notNull(index, "index must not be null");
|
Assert.notNull(index, "index must not be null");
|
||||||
|
|
||||||
SearchRequest searchRequest = requestConverter.searchRequest(query, clazz, index, false);
|
SearchRequest searchRequest = requestConverter.searchRequest(query, routingResolver.getRouting(), clazz, index,
|
||||||
|
false);
|
||||||
|
|
||||||
// noinspection unchecked
|
// noinspection unchecked
|
||||||
SearchDocumentCallback<T> callback = new ReadSearchDocumentCallback<>((Class<T>) clazz, index);
|
SearchDocumentCallback<T> callback = new ReadSearchDocumentCallback<>((Class<T>) clazz, index);
|
||||||
|
@ -837,8 +837,8 @@ class RequestConverter {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public DeleteByQueryRequest documentDeleteByQueryRequest(Query query, Class<?> clazz, IndexCoordinates index,
|
public DeleteByQueryRequest documentDeleteByQueryRequest(Query query, @Nullable String routing, Class<?> clazz,
|
||||||
@Nullable RefreshPolicy refreshPolicy) {
|
IndexCoordinates index, @Nullable RefreshPolicy refreshPolicy) {
|
||||||
|
|
||||||
Assert.notNull(query, "query must not be null");
|
Assert.notNull(query, "query must not be null");
|
||||||
Assert.notNull(index, "index must not be null");
|
Assert.notNull(index, "index must not be null");
|
||||||
@ -857,6 +857,8 @@ class RequestConverter {
|
|||||||
|
|
||||||
if (query.getRoute() != null) {
|
if (query.getRoute() != null) {
|
||||||
b.routing(query.getRoute());
|
b.routing(query.getRoute());
|
||||||
|
} else if (StringUtils.hasText(routing)) {
|
||||||
|
b.routing(routing);
|
||||||
}
|
}
|
||||||
|
|
||||||
return b;
|
return b;
|
||||||
@ -998,23 +1000,24 @@ class RequestConverter {
|
|||||||
|
|
||||||
// region search
|
// region search
|
||||||
|
|
||||||
public <T> SearchRequest searchRequest(Query query, @Nullable Class<T> clazz, IndexCoordinates indexCoordinates,
|
public <T> SearchRequest searchRequest(Query query, @Nullable String routing, @Nullable Class<T> clazz,
|
||||||
boolean forCount) {
|
IndexCoordinates indexCoordinates, boolean forCount) {
|
||||||
return searchRequest(query, clazz, indexCoordinates, forCount, false, null);
|
return searchRequest(query, routing, clazz, indexCoordinates, forCount, false, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> SearchRequest searchRequest(Query query, @Nullable Class<T> clazz, IndexCoordinates indexCoordinates,
|
public <T> SearchRequest searchRequest(Query query, @Nullable String routing, @Nullable Class<T> clazz,
|
||||||
boolean forCount, long scrollTimeInMillis) {
|
IndexCoordinates indexCoordinates, boolean forCount, long scrollTimeInMillis) {
|
||||||
return searchRequest(query, clazz, indexCoordinates, forCount, true, scrollTimeInMillis);
|
return searchRequest(query, routing, clazz, indexCoordinates, forCount, true, scrollTimeInMillis);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> SearchRequest searchRequest(Query query, @Nullable Class<T> clazz, IndexCoordinates indexCoordinates,
|
public <T> SearchRequest searchRequest(Query query, @Nullable String routing, @Nullable Class<T> clazz,
|
||||||
boolean forCount, boolean forBatchedSearch) {
|
IndexCoordinates indexCoordinates, boolean forCount, boolean forBatchedSearch) {
|
||||||
return searchRequest(query, clazz, indexCoordinates, forCount, forBatchedSearch, null);
|
return searchRequest(query, routing, clazz, indexCoordinates, forCount, forBatchedSearch, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> SearchRequest searchRequest(Query query, @Nullable Class<T> clazz, IndexCoordinates indexCoordinates,
|
public <T> SearchRequest searchRequest(Query query, @Nullable String routing, @Nullable Class<T> clazz,
|
||||||
boolean forCount, boolean forBatchedSearch, @Nullable Long scrollTimeInMillis) {
|
IndexCoordinates indexCoordinates, boolean forCount, boolean forBatchedSearch,
|
||||||
|
@Nullable Long scrollTimeInMillis) {
|
||||||
|
|
||||||
String[] indexNames = indexCoordinates.getIndexNames();
|
String[] indexNames = indexCoordinates.getIndexNames();
|
||||||
Assert.notNull(query, "query must not be null");
|
Assert.notNull(query, "query must not be null");
|
||||||
@ -1022,7 +1025,7 @@ class RequestConverter {
|
|||||||
|
|
||||||
elasticsearchConverter.updateQuery(query, clazz);
|
elasticsearchConverter.updateQuery(query, clazz);
|
||||||
SearchRequest.Builder builder = new SearchRequest.Builder();
|
SearchRequest.Builder builder = new SearchRequest.Builder();
|
||||||
prepareSearchRequest(query, clazz, indexCoordinates, builder, forCount, forBatchedSearch);
|
prepareSearchRequest(query, routing, clazz, indexCoordinates, builder, forCount, forBatchedSearch);
|
||||||
|
|
||||||
if (scrollTimeInMillis != null) {
|
if (scrollTimeInMillis != null) {
|
||||||
builder.scroll(t -> t.time(scrollTimeInMillis + "ms"));
|
builder.scroll(t -> t.time(scrollTimeInMillis + "ms"));
|
||||||
@ -1030,13 +1033,20 @@ class RequestConverter {
|
|||||||
|
|
||||||
builder.query(getQuery(query, clazz));
|
builder.query(getQuery(query, clazz));
|
||||||
|
|
||||||
|
if (StringUtils.hasText(query.getRoute())) {
|
||||||
|
builder.routing(query.getRoute());
|
||||||
|
}
|
||||||
|
if (StringUtils.hasText(routing)) {
|
||||||
|
builder.routing(routing);
|
||||||
|
}
|
||||||
|
|
||||||
addFilter(query, builder);
|
addFilter(query, builder);
|
||||||
|
|
||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public MsearchRequest searchMsearchRequest(
|
public MsearchRequest searchMsearchRequest(
|
||||||
List<ElasticsearchTemplate.MultiSearchQueryParameter> multiSearchQueryParameters) {
|
List<ElasticsearchTemplate.MultiSearchQueryParameter> multiSearchQueryParameters, @Nullable String routing) {
|
||||||
|
|
||||||
// basically the same stuff as in prepareSearchRequest, but the new Elasticsearch has different builders for a
|
// basically the same stuff as in prepareSearchRequest, but the new Elasticsearch has different builders for a
|
||||||
// normal search and msearch
|
// normal search and msearch
|
||||||
@ -1049,11 +1059,16 @@ class RequestConverter {
|
|||||||
.header(h -> {
|
.header(h -> {
|
||||||
h //
|
h //
|
||||||
.index(Arrays.asList(param.index().getIndexNames())) //
|
.index(Arrays.asList(param.index().getIndexNames())) //
|
||||||
.routing(query.getRoute()) //
|
|
||||||
.searchType(searchType(query.getSearchType())) //
|
.searchType(searchType(query.getSearchType())) //
|
||||||
.requestCache(query.getRequestCache()) //
|
.requestCache(query.getRequestCache()) //
|
||||||
;
|
;
|
||||||
|
|
||||||
|
if (StringUtils.hasText(query.getRoute())) {
|
||||||
|
h.routing(query.getRoute());
|
||||||
|
} else if (StringUtils.hasText(routing)) {
|
||||||
|
h.routing(routing);
|
||||||
|
}
|
||||||
|
|
||||||
if (query.getPreference() != null) {
|
if (query.getPreference() != null) {
|
||||||
h.preference(query.getPreference());
|
h.preference(query.getPreference());
|
||||||
}
|
}
|
||||||
@ -1156,8 +1171,8 @@ class RequestConverter {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T> void prepareSearchRequest(Query query, @Nullable Class<T> clazz, IndexCoordinates indexCoordinates,
|
private <T> void prepareSearchRequest(Query query, @Nullable String routing, @Nullable Class<T> clazz,
|
||||||
SearchRequest.Builder builder, boolean forCount, boolean forBatchedSearch) {
|
IndexCoordinates indexCoordinates, SearchRequest.Builder builder, boolean forCount, boolean forBatchedSearch) {
|
||||||
|
|
||||||
String[] indexNames = indexCoordinates.getIndexNames();
|
String[] indexNames = indexCoordinates.getIndexNames();
|
||||||
|
|
||||||
@ -1190,6 +1205,8 @@ class RequestConverter {
|
|||||||
|
|
||||||
if (query.getRoute() != null) {
|
if (query.getRoute() != null) {
|
||||||
builder.routing(query.getRoute());
|
builder.routing(query.getRoute());
|
||||||
|
} else if (StringUtils.hasText(routing)) {
|
||||||
|
builder.routing(routing);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (query.getPreference() != null) {
|
if (query.getPreference() != null) {
|
||||||
@ -1559,7 +1576,8 @@ class RequestConverter {
|
|||||||
return ClosePointInTimeRequest.of(cpit -> cpit.id(pit));
|
return ClosePointInTimeRequest.of(cpit -> cpit.id(pit));
|
||||||
}
|
}
|
||||||
|
|
||||||
public SearchTemplateRequest searchTemplate(SearchTemplateQuery query, IndexCoordinates index) {
|
public SearchTemplateRequest searchTemplate(SearchTemplateQuery query, @Nullable String routing,
|
||||||
|
IndexCoordinates index) {
|
||||||
|
|
||||||
Assert.notNull(query, "query must not be null");
|
Assert.notNull(query, "query must not be null");
|
||||||
|
|
||||||
@ -1570,10 +1588,15 @@ class RequestConverter {
|
|||||||
.id(query.getId()) //
|
.id(query.getId()) //
|
||||||
.index(Arrays.asList(index.getIndexNames())) //
|
.index(Arrays.asList(index.getIndexNames())) //
|
||||||
.preference(query.getPreference()) //
|
.preference(query.getPreference()) //
|
||||||
.routing(query.getRoute()) //
|
|
||||||
.searchType(searchType(query.getSearchType())).source(query.getSource()) //
|
.searchType(searchType(query.getSearchType())).source(query.getSource()) //
|
||||||
;
|
;
|
||||||
|
|
||||||
|
if (query.getRoute() != null) {
|
||||||
|
builder.routing(query.getRoute());
|
||||||
|
} else if (StringUtils.hasText(routing)) {
|
||||||
|
builder.routing(routing);
|
||||||
|
}
|
||||||
|
|
||||||
var expandWildcards = query.getExpandWildcards();
|
var expandWildcards = query.getExpandWildcards();
|
||||||
if (!expandWildcards.isEmpty()) {
|
if (!expandWildcards.isEmpty()) {
|
||||||
builder.expandWildcards(expandWildcards(expandWildcards));
|
builder.expandWildcards(expandWildcards(expandWildcards));
|
||||||
|
@ -261,7 +261,8 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ByQueryResponse delete(Query query, Class<?> clazz, IndexCoordinates index) {
|
public ByQueryResponse delete(Query query, Class<?> clazz, IndexCoordinates index) {
|
||||||
DeleteByQueryRequest deleteByQueryRequest = requestFactory.deleteByQueryRequest(query, clazz, index);
|
DeleteByQueryRequest deleteByQueryRequest = requestFactory.deleteByQueryRequest(query, routingResolver.getRouting(),
|
||||||
|
clazz, index);
|
||||||
return ResponseConverter
|
return ResponseConverter
|
||||||
.byQueryResponseOf(execute(client -> client.deleteByQuery(deleteByQueryRequest, RequestOptions.DEFAULT)));
|
.byQueryResponseOf(execute(client -> client.deleteByQuery(deleteByQueryRequest, RequestOptions.DEFAULT)));
|
||||||
}
|
}
|
||||||
@ -398,7 +399,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate {
|
|||||||
|
|
||||||
final Boolean trackTotalHits = query.getTrackTotalHits();
|
final Boolean trackTotalHits = query.getTrackTotalHits();
|
||||||
query.setTrackTotalHits(true);
|
query.setTrackTotalHits(true);
|
||||||
SearchRequest searchRequest = requestFactory.searchRequest(query, clazz, index);
|
SearchRequest searchRequest = requestFactory.searchRequest(query, routingResolver.getRouting(), clazz, index);
|
||||||
query.setTrackTotalHits(trackTotalHits);
|
query.setTrackTotalHits(trackTotalHits);
|
||||||
|
|
||||||
searchRequest.source().size(0);
|
searchRequest.source().size(0);
|
||||||
@ -409,7 +410,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> SearchHits<T> search(Query query, Class<T> clazz, IndexCoordinates index) {
|
public <T> SearchHits<T> search(Query query, Class<T> clazz, IndexCoordinates index) {
|
||||||
SearchRequest searchRequest = requestFactory.searchRequest(query, clazz, index);
|
SearchRequest searchRequest = requestFactory.searchRequest(query, routingResolver.getRouting(), clazz, index);
|
||||||
SearchResponse response = execute(client -> client.search(searchRequest, RequestOptions.DEFAULT));
|
SearchResponse response = execute(client -> client.search(searchRequest, RequestOptions.DEFAULT));
|
||||||
|
|
||||||
ReadDocumentCallback<T> documentCallback = new ReadDocumentCallback<>(elasticsearchConverter, clazz, index);
|
ReadDocumentCallback<T> documentCallback = new ReadDocumentCallback<>(elasticsearchConverter, clazz, index);
|
||||||
@ -431,7 +432,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate {
|
|||||||
|
|
||||||
Assert.notNull(query.getPageable(), "pageable of query must not be null.");
|
Assert.notNull(query.getPageable(), "pageable of query must not be null.");
|
||||||
|
|
||||||
SearchRequest searchRequest = requestFactory.searchRequest(query, clazz, index);
|
SearchRequest searchRequest = requestFactory.searchRequest(query, routingResolver.getRouting(), clazz, index);
|
||||||
searchRequest.scroll(TimeValue.timeValueMillis(scrollTimeInMillis));
|
searchRequest.scroll(TimeValue.timeValueMillis(scrollTimeInMillis));
|
||||||
|
|
||||||
SearchResponse response = execute(client -> client.search(searchRequest, RequestOptions.DEFAULT));
|
SearchResponse response = execute(client -> client.search(searchRequest, RequestOptions.DEFAULT));
|
||||||
@ -477,7 +478,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate {
|
|||||||
public <T> List<SearchHits<T>> multiSearch(List<? extends Query> queries, Class<T> clazz, IndexCoordinates index) {
|
public <T> List<SearchHits<T>> multiSearch(List<? extends Query> queries, Class<T> clazz, IndexCoordinates index) {
|
||||||
MultiSearchRequest request = new MultiSearchRequest();
|
MultiSearchRequest request = new MultiSearchRequest();
|
||||||
for (Query query : queries) {
|
for (Query query : queries) {
|
||||||
request.add(requestFactory.searchRequest(query, clazz, index));
|
request.add(requestFactory.searchRequest(query, routingResolver.getRouting(), clazz, index));
|
||||||
}
|
}
|
||||||
|
|
||||||
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
||||||
@ -504,7 +505,8 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate {
|
|||||||
Iterator<Class<?>> it = classes.iterator();
|
Iterator<Class<?>> it = classes.iterator();
|
||||||
for (Query query : queries) {
|
for (Query query : queries) {
|
||||||
Class<?> clazz = it.next();
|
Class<?> clazz = it.next();
|
||||||
request.add(requestFactory.searchRequest(query, clazz, getIndexCoordinatesFor(clazz)));
|
request
|
||||||
|
.add(requestFactory.searchRequest(query, routingResolver.getRouting(), clazz, getIndexCoordinatesFor(clazz)));
|
||||||
}
|
}
|
||||||
|
|
||||||
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
||||||
@ -538,7 +540,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate {
|
|||||||
MultiSearchRequest request = new MultiSearchRequest();
|
MultiSearchRequest request = new MultiSearchRequest();
|
||||||
Iterator<Class<?>> it = classes.iterator();
|
Iterator<Class<?>> it = classes.iterator();
|
||||||
for (Query query : queries) {
|
for (Query query : queries) {
|
||||||
request.add(requestFactory.searchRequest(query, it.next(), index));
|
request.add(requestFactory.searchRequest(query, routingResolver.getRouting(), it.next(), index));
|
||||||
}
|
}
|
||||||
|
|
||||||
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
||||||
@ -572,7 +574,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate {
|
|||||||
Iterator<Class<?>> it = classes.iterator();
|
Iterator<Class<?>> it = classes.iterator();
|
||||||
Iterator<IndexCoordinates> indexesIt = indexes.iterator();
|
Iterator<IndexCoordinates> indexesIt = indexes.iterator();
|
||||||
for (Query query : queries) {
|
for (Query query : queries) {
|
||||||
request.add(requestFactory.searchRequest(query, it.next(), indexesIt.next()));
|
request.add(requestFactory.searchRequest(query, routingResolver.getRouting(), it.next(), indexesIt.next()));
|
||||||
}
|
}
|
||||||
|
|
||||||
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
||||||
|
@ -374,7 +374,8 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
protected Mono<BulkByScrollResponse> doDeleteBy(Query query, Class<?> entityType, IndexCoordinates index) {
|
protected Mono<BulkByScrollResponse> doDeleteBy(Query query, Class<?> entityType, IndexCoordinates index) {
|
||||||
|
|
||||||
return Mono.defer(() -> {
|
return Mono.defer(() -> {
|
||||||
DeleteByQueryRequest request = requestFactory.deleteByQueryRequest(query, entityType, index);
|
DeleteByQueryRequest request = requestFactory.deleteByQueryRequest(query, routingResolver.getRouting(),
|
||||||
|
entityType, index);
|
||||||
return doDeleteBy(prepareDeleteByRequest(request));
|
return doDeleteBy(prepareDeleteByRequest(request));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -505,7 +506,7 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
|
|
||||||
return Flux.defer(() -> {
|
return Flux.defer(() -> {
|
||||||
|
|
||||||
SearchRequest request = requestFactory.searchRequest(query, clazz, index);
|
SearchRequest request = requestFactory.searchRequest(query, routingResolver.getRouting(), clazz, index);
|
||||||
boolean useScroll = !(query.getPageable().isPaged() || query.isLimiting());
|
boolean useScroll = !(query.getPageable().isPaged() || query.isLimiting());
|
||||||
request = prepareSearchRequest(request, useScroll);
|
request = prepareSearchRequest(request, useScroll);
|
||||||
|
|
||||||
@ -520,7 +521,7 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
protected <T> Mono<SearchDocumentResponse> doFindForResponse(Query query, Class<?> clazz, IndexCoordinates index) {
|
protected <T> Mono<SearchDocumentResponse> doFindForResponse(Query query, Class<?> clazz, IndexCoordinates index) {
|
||||||
|
|
||||||
return Mono.defer(() -> {
|
return Mono.defer(() -> {
|
||||||
SearchRequest request = requestFactory.searchRequest(query, clazz, index);
|
SearchRequest request = requestFactory.searchRequest(query, routingResolver.getRouting(), clazz, index);
|
||||||
request = prepareSearchRequest(request, false);
|
request = prepareSearchRequest(request, false);
|
||||||
|
|
||||||
SearchDocumentCallback<?> documentCallback = new ReadSearchDocumentCallback<>(clazz, index);
|
SearchDocumentCallback<?> documentCallback = new ReadSearchDocumentCallback<>(clazz, index);
|
||||||
@ -540,7 +541,7 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
Assert.notNull(index, "index must not be null");
|
Assert.notNull(index, "index must not be null");
|
||||||
|
|
||||||
return Flux.defer(() -> {
|
return Flux.defer(() -> {
|
||||||
SearchRequest request = requestFactory.searchRequest(query, entityType, index);
|
SearchRequest request = requestFactory.searchRequest(query, routingResolver.getRouting(), entityType, index);
|
||||||
request = prepareSearchRequest(request, false);
|
request = prepareSearchRequest(request, false);
|
||||||
return doAggregate(request);
|
return doAggregate(request);
|
||||||
});
|
});
|
||||||
@ -565,7 +566,7 @@ public class ReactiveElasticsearchTemplate extends AbstractReactiveElasticsearch
|
|||||||
protected Mono<Long> doCount(Query query, Class<?> entityType, IndexCoordinates index) {
|
protected Mono<Long> doCount(Query query, Class<?> entityType, IndexCoordinates index) {
|
||||||
return Mono.defer(() -> {
|
return Mono.defer(() -> {
|
||||||
|
|
||||||
SearchRequest request = requestFactory.searchRequest(query, entityType, index);
|
SearchRequest request = requestFactory.searchRequest(query, routingResolver.getRouting(), entityType, index);
|
||||||
request = prepareSearchRequest(request, false);
|
request = prepareSearchRequest(request, false);
|
||||||
return doCount(request);
|
return doCount(request);
|
||||||
});
|
});
|
||||||
|
@ -525,8 +525,8 @@ class RequestFactory {
|
|||||||
// endregion
|
// endregion
|
||||||
|
|
||||||
// region delete
|
// region delete
|
||||||
public DeleteByQueryRequest deleteByQueryRequest(Query query, Class<?> clazz, IndexCoordinates index) {
|
public DeleteByQueryRequest deleteByQueryRequest(Query query, @Nullable String routing, Class<?> clazz, IndexCoordinates index) {
|
||||||
SearchRequest searchRequest = searchRequest(query, clazz, index);
|
SearchRequest searchRequest = searchRequest(query, routing, clazz, index);
|
||||||
DeleteByQueryRequest deleteByQueryRequest = new DeleteByQueryRequest(index.getIndexNames()) //
|
DeleteByQueryRequest deleteByQueryRequest = new DeleteByQueryRequest(index.getIndexNames()) //
|
||||||
.setQuery(searchRequest.source().query()) //
|
.setQuery(searchRequest.source().query()) //
|
||||||
.setAbortOnVersionConflict(false) //
|
.setAbortOnVersionConflict(false) //
|
||||||
@ -544,6 +544,8 @@ class RequestFactory {
|
|||||||
|
|
||||||
if (query.getRoute() != null) {
|
if (query.getRoute() != null) {
|
||||||
deleteByQueryRequest.setRouting(query.getRoute());
|
deleteByQueryRequest.setRouting(query.getRoute());
|
||||||
|
} else if (StringUtils.hasText(routing)) {
|
||||||
|
deleteByQueryRequest.setRouting(routing);
|
||||||
}
|
}
|
||||||
|
|
||||||
return deleteByQueryRequest;
|
return deleteByQueryRequest;
|
||||||
@ -751,10 +753,10 @@ class RequestFactory {
|
|||||||
return searchRequest;
|
return searchRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SearchRequest searchRequest(Query query, @Nullable Class<?> clazz, IndexCoordinates index) {
|
public SearchRequest searchRequest(Query query, @Nullable String routing, @Nullable Class<?> clazz, IndexCoordinates index) {
|
||||||
|
|
||||||
elasticsearchConverter.updateQuery(query, clazz);
|
elasticsearchConverter.updateQuery(query, clazz);
|
||||||
SearchRequest searchRequest = prepareSearchRequest(query, clazz, index);
|
SearchRequest searchRequest = prepareSearchRequest(query, routing,clazz, index);
|
||||||
QueryBuilder elasticsearchQuery = getQuery(query);
|
QueryBuilder elasticsearchQuery = getQuery(query);
|
||||||
QueryBuilder elasticsearchFilter = getFilter(query);
|
QueryBuilder elasticsearchFilter = getFilter(query);
|
||||||
|
|
||||||
@ -768,7 +770,7 @@ class RequestFactory {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchRequest prepareSearchRequest(Query query, @Nullable Class<?> clazz, IndexCoordinates indexCoordinates) {
|
private SearchRequest prepareSearchRequest(Query query, @Nullable String routing, @Nullable Class<?> clazz, IndexCoordinates indexCoordinates) {
|
||||||
|
|
||||||
String[] indexNames = indexCoordinates.getIndexNames();
|
String[] indexNames = indexCoordinates.getIndexNames();
|
||||||
Assert.notNull(indexNames, "No index defined for Query");
|
Assert.notNull(indexNames, "No index defined for Query");
|
||||||
@ -843,6 +845,8 @@ class RequestFactory {
|
|||||||
|
|
||||||
if (StringUtils.hasLength(query.getRoute())) {
|
if (StringUtils.hasLength(query.getRoute())) {
|
||||||
request.routing(query.getRoute());
|
request.routing(query.getRoute());
|
||||||
|
} else if (StringUtils.hasText(routing)) {
|
||||||
|
request.routing(routing);
|
||||||
}
|
}
|
||||||
|
|
||||||
Duration timeout = query.getTimeout();
|
Duration timeout = query.getTimeout();
|
||||||
|
@ -40,7 +40,7 @@ public class ElasticsearchPartQueryELCIntegrationTests extends ElasticsearchPart
|
|||||||
|
|
||||||
JacksonJsonpMapper jsonpMapper = new JacksonJsonpMapper();
|
JacksonJsonpMapper jsonpMapper = new JacksonJsonpMapper();
|
||||||
RequestConverter requestConverter = new RequestConverter(operations.getElasticsearchConverter(), jsonpMapper);
|
RequestConverter requestConverter = new RequestConverter(operations.getElasticsearchConverter(), jsonpMapper);
|
||||||
SearchRequest request = requestConverter.searchRequest(query, clazz, IndexCoordinates.of("dummy"), false);
|
SearchRequest request = requestConverter.searchRequest(query, null, clazz, IndexCoordinates.of("dummy"), false);
|
||||||
|
|
||||||
return JsonUtils.toJson(request, jsonpMapper);
|
return JsonUtils.toJson(request, jsonpMapper);
|
||||||
// return "{\"query\":" + JsonUtils.toJson(request.query(), jsonpMapper) + "}";
|
// return "{\"query\":" + JsonUtils.toJson(request.query(), jsonpMapper) + "}";
|
||||||
|
@ -62,7 +62,7 @@ class RequestConverterTest {
|
|||||||
.withDocValueFields(docValueFields) //
|
.withDocValueFields(docValueFields) //
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
var searchRequest = requestConverter.searchRequest(query, SampleEntity.class, IndexCoordinates.of("foo"), true);
|
var searchRequest = requestConverter.searchRequest(query,null, SampleEntity.class, IndexCoordinates.of("foo"), true);
|
||||||
|
|
||||||
var fieldAndFormats = searchRequest.docvalueFields();
|
var fieldAndFormats = searchRequest.docvalueFields();
|
||||||
assertThat(fieldAndFormats).hasSize(2);
|
assertThat(fieldAndFormats).hasSize(2);
|
||||||
|
@ -40,7 +40,7 @@ public class ElasticsearchPartQueryERHLCIntegrationTests extends ElasticsearchPa
|
|||||||
|
|
||||||
protected String buildQueryString(Query query, Class<?> clazz) {
|
protected String buildQueryString(Query query, Class<?> clazz) {
|
||||||
SearchSourceBuilder source = new RequestFactory(operations.getElasticsearchConverter())
|
SearchSourceBuilder source = new RequestFactory(operations.getElasticsearchConverter())
|
||||||
.searchRequest(query, clazz, IndexCoordinates.of("dummy")).source();
|
.searchRequest(query, null, clazz, IndexCoordinates.of("dummy")).source();
|
||||||
// remove defaultboost values
|
// remove defaultboost values
|
||||||
return source.toString().replaceAll("(\\^\\d+\\.\\d+)", "");
|
return source.toString().replaceAll("(\\^\\d+\\.\\d+)", "");
|
||||||
}
|
}
|
||||||
|
@ -110,7 +110,7 @@ class RequestFactoryTests {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchRequest searchRequest = requestFactory.searchRequest(query, null, IndexCoordinates.of("test"));
|
SearchRequest searchRequest = requestFactory.searchRequest(query, null, null, IndexCoordinates.of("test"));
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(searchRequest.source().from()).isEqualTo(30);
|
assertThat(searchRequest.source().from()).isEqualTo(30);
|
||||||
@ -218,21 +218,35 @@ class RequestFactoryTests {
|
|||||||
" ]" + //
|
" ]" + //
|
||||||
'}';
|
'}';
|
||||||
|
|
||||||
String searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons")).source()
|
String searchRequest = requestFactory.searchRequest(query, null, Person.class, IndexCoordinates.of("persons"))
|
||||||
.toString();
|
.source().toString();
|
||||||
|
|
||||||
assertEquals(expected, searchRequest, false);
|
assertEquals(expected, searchRequest, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
// DATAES-449
|
// DATAES-449
|
||||||
void shouldAddRouting() {
|
void shouldAddRoutingFromQuery() {
|
||||||
String route = "route66";
|
String route = "route66";
|
||||||
CriteriaQuery query = new CriteriaQuery(new Criteria("lastName").is("Smith"));
|
CriteriaQuery query = new CriteriaQuery(new Criteria("lastName").is("Smith"));
|
||||||
query.setRoute(route);
|
query.setRoute(route);
|
||||||
converter.updateQuery(query, Person.class);
|
converter.updateQuery(query, Person.class);
|
||||||
|
|
||||||
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
|
SearchRequest searchRequest = requestFactory.searchRequest(query, null, Person.class,
|
||||||
|
IndexCoordinates.of("persons"));
|
||||||
|
|
||||||
|
assertThat(searchRequest.routing()).isEqualTo(route);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
// #2087
|
||||||
|
void shouldAddRoutingFromRouting() {
|
||||||
|
String route = "route66";
|
||||||
|
CriteriaQuery query = new CriteriaQuery(new Criteria("lastName").is("Smith"));
|
||||||
|
converter.updateQuery(query, Person.class);
|
||||||
|
|
||||||
|
SearchRequest searchRequest = requestFactory.searchRequest(query, route, Person.class,
|
||||||
|
IndexCoordinates.of("persons"));
|
||||||
|
|
||||||
assertThat(searchRequest.routing()).isEqualTo(route);
|
assertThat(searchRequest.routing()).isEqualTo(route);
|
||||||
}
|
}
|
||||||
@ -242,7 +256,8 @@ class RequestFactoryTests {
|
|||||||
void shouldAddMaxQueryWindowForUnpagedToRequest() {
|
void shouldAddMaxQueryWindowForUnpagedToRequest() {
|
||||||
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withPageable(Pageable.unpaged()).build();
|
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withPageable(Pageable.unpaged()).build();
|
||||||
|
|
||||||
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
|
SearchRequest searchRequest = requestFactory.searchRequest(query, null, Person.class,
|
||||||
|
IndexCoordinates.of("persons"));
|
||||||
|
|
||||||
assertThat(searchRequest.source().from()).isEqualTo(0);
|
assertThat(searchRequest.source().from()).isEqualTo(0);
|
||||||
assertThat(searchRequest.source().size()).isEqualTo(RequestFactory.INDEX_MAX_RESULT_WINDOW);
|
assertThat(searchRequest.source().size()).isEqualTo(RequestFactory.INDEX_MAX_RESULT_WINDOW);
|
||||||
@ -267,7 +282,7 @@ class RequestFactoryTests {
|
|||||||
void shouldNotRequestSeqNoAndPrimaryTermWhenEntityClassDoesNotContainSeqNoPrimaryTermProperty() {
|
void shouldNotRequestSeqNoAndPrimaryTermWhenEntityClassDoesNotContainSeqNoPrimaryTermProperty() {
|
||||||
Query query = new NativeSearchQueryBuilder().build();
|
Query query = new NativeSearchQueryBuilder().build();
|
||||||
|
|
||||||
SearchRequest request = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
|
SearchRequest request = requestFactory.searchRequest(query, null, Person.class, IndexCoordinates.of("persons"));
|
||||||
|
|
||||||
assertThat(request.source().seqNoAndPrimaryTerm()).isNull();
|
assertThat(request.source().seqNoAndPrimaryTerm()).isNull();
|
||||||
}
|
}
|
||||||
@ -277,7 +292,7 @@ class RequestFactoryTests {
|
|||||||
void shouldRequestSeqNoAndPrimaryTermWhenEntityClassContainsSeqNoPrimaryTermProperty() {
|
void shouldRequestSeqNoAndPrimaryTermWhenEntityClassContainsSeqNoPrimaryTermProperty() {
|
||||||
Query query = new NativeSearchQueryBuilder().build();
|
Query query = new NativeSearchQueryBuilder().build();
|
||||||
|
|
||||||
SearchRequest request = requestFactory.searchRequest(query, EntityWithSeqNoPrimaryTerm.class,
|
SearchRequest request = requestFactory.searchRequest(query, null, EntityWithSeqNoPrimaryTerm.class,
|
||||||
IndexCoordinates.of("seqNoPrimaryTerm"));
|
IndexCoordinates.of("seqNoPrimaryTerm"));
|
||||||
|
|
||||||
assertThat(request.source().seqNoAndPrimaryTerm()).isTrue();
|
assertThat(request.source().seqNoAndPrimaryTerm()).isTrue();
|
||||||
@ -288,7 +303,7 @@ class RequestFactoryTests {
|
|||||||
void shouldNotRequestSeqNoAndPrimaryTermWhenEntityClassIsNull() {
|
void shouldNotRequestSeqNoAndPrimaryTermWhenEntityClassIsNull() {
|
||||||
Query query = new NativeSearchQueryBuilder().build();
|
Query query = new NativeSearchQueryBuilder().build();
|
||||||
|
|
||||||
SearchRequest request = requestFactory.searchRequest(query, null, IndexCoordinates.of("persons"));
|
SearchRequest request = requestFactory.searchRequest(query, null, null, IndexCoordinates.of("persons"));
|
||||||
|
|
||||||
assertThat(request.source().seqNoAndPrimaryTerm()).isNull();
|
assertThat(request.source().seqNoAndPrimaryTerm()).isNull();
|
||||||
}
|
}
|
||||||
@ -516,7 +531,8 @@ class RequestFactoryTests {
|
|||||||
void shouldSetTimeoutToRequest() {
|
void shouldSetTimeoutToRequest() {
|
||||||
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withTimeout(Duration.ofSeconds(1)).build();
|
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withTimeout(Duration.ofSeconds(1)).build();
|
||||||
|
|
||||||
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
|
SearchRequest searchRequest = requestFactory.searchRequest(query, null, Person.class,
|
||||||
|
IndexCoordinates.of("persons"));
|
||||||
|
|
||||||
assertThat(searchRequest.source().timeout().getMillis()).isEqualTo(Duration.ofSeconds(1).toMillis());
|
assertThat(searchRequest.source().timeout().getMillis()).isEqualTo(Duration.ofSeconds(1).toMillis());
|
||||||
}
|
}
|
||||||
@ -622,8 +638,8 @@ class RequestFactoryTests {
|
|||||||
]
|
]
|
||||||
}""";
|
}""";
|
||||||
|
|
||||||
String searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons")).source()
|
String searchRequest = requestFactory.searchRequest(query, null, Person.class, IndexCoordinates.of("persons"))
|
||||||
.toString();
|
.source().toString();
|
||||||
|
|
||||||
assertEquals(expected, searchRequest, false);
|
assertEquals(expected, searchRequest, false);
|
||||||
}
|
}
|
||||||
@ -634,7 +650,8 @@ class RequestFactoryTests {
|
|||||||
|
|
||||||
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
|
|
||||||
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
|
SearchRequest searchRequest = requestFactory.searchRequest(query, null, Person.class,
|
||||||
|
IndexCoordinates.of("persons"));
|
||||||
|
|
||||||
assertThat(searchRequest.requestCache()).isNull();
|
assertThat(searchRequest.requestCache()).isNull();
|
||||||
}
|
}
|
||||||
@ -646,7 +663,8 @@ class RequestFactoryTests {
|
|||||||
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
query.setRequestCache(true);
|
query.setRequestCache(true);
|
||||||
|
|
||||||
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
|
SearchRequest searchRequest = requestFactory.searchRequest(query, null, Person.class,
|
||||||
|
IndexCoordinates.of("persons"));
|
||||||
|
|
||||||
assertThat(searchRequest.requestCache()).isTrue();
|
assertThat(searchRequest.requestCache()).isTrue();
|
||||||
}
|
}
|
||||||
@ -658,7 +676,8 @@ class RequestFactoryTests {
|
|||||||
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
query.setRequestCache(false);
|
query.setRequestCache(false);
|
||||||
|
|
||||||
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
|
SearchRequest searchRequest = requestFactory.searchRequest(query, null, Person.class,
|
||||||
|
IndexCoordinates.of("persons"));
|
||||||
|
|
||||||
assertThat(searchRequest.requestCache()).isFalse();
|
assertThat(searchRequest.requestCache()).isFalse();
|
||||||
}
|
}
|
||||||
@ -670,7 +689,8 @@ class RequestFactoryTests {
|
|||||||
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withStoredFields("lastName", "location")
|
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withStoredFields("lastName", "location")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
|
SearchRequest searchRequest = requestFactory.searchRequest(query, null, Person.class,
|
||||||
|
IndexCoordinates.of("persons"));
|
||||||
|
|
||||||
assertThat(searchRequest.source().storedFields()).isNotNull();
|
assertThat(searchRequest.source().storedFields()).isNotNull();
|
||||||
assertThat(searchRequest.source().storedFields().fieldNames())
|
assertThat(searchRequest.source().storedFields().fieldNames())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user