Skip to content

Commit 2438bec

Browse files
committed
Use spring-data classes.
This commit updates the DeleteQuery to use internal classes instead of Elasticsearch classes. Signed-off-by: Youssef Aouichaoui <youssef3wi@icloud.com>
1 parent 7305212 commit 2438bec

File tree

5 files changed

+384
-34
lines changed

5 files changed

+384
-34
lines changed

src/main/java/org/springframework/data/elasticsearch/client/elc/RequestConverter.java

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -977,18 +977,14 @@ public DeleteByQueryRequest documentDeleteByQueryRequest(DeleteQuery query, @Nul
977977
return DeleteByQueryRequest.of(dqb -> {
978978
dqb.index(Arrays.asList(index.getIndexNames())) //
979979
.query(getQuery(query.getQuery(), clazz))//
980-
.refresh(deleteByQueryRefresh(refreshPolicy));
981-
982-
if (query.isLimiting()) {
983-
// noinspection ConstantConditions
984-
dqb.maxDocs(Long.valueOf(query.getMaxResults()));
985-
}
986-
987-
dqb.scroll(time(query.getScrollTime()))
980+
.refresh(deleteByQueryRefresh(refreshPolicy))
981+
.requestsPerSecond(query.getRequestsPerSecond())
982+
.maxDocs(query.getMaxDocs())
983+
.scroll(time(query.getScroll()))
988984
.scrollSize(query.getScrollSize());
989985

990-
if (query.getRoute() != null) {
991-
dqb.routing(query.getRoute());
986+
if (query.getRouting() != null) {
987+
dqb.routing(query.getRouting());
992988
} else if (StringUtils.hasText(routing)) {
993989
dqb.routing(routing);
994990
}
@@ -997,7 +993,7 @@ public DeleteByQueryRequest documentDeleteByQueryRequest(DeleteQuery query, @Nul
997993
dqb.q(query.getQ())
998994
.analyzer(query.getAnalyzer())
999995
.analyzeWildcard(query.getAnalyzeWildcard())
1000-
.defaultOperator(query.getDefaultOperator())
996+
.defaultOperator(operator(query.getDefaultOperator()))
1001997
.df(query.getDf())
1002998
.lenient(query.getLenient());
1003999
}
@@ -1008,14 +1004,28 @@ public DeleteByQueryRequest documentDeleteByQueryRequest(DeleteQuery query, @Nul
10081004
if (query.getStats() != null && !query.getStats().isEmpty()) {
10091005
dqb.stats(query.getStats());
10101006
}
1007+
if (query.getSlices() != null) {
1008+
dqb.slices(sb -> sb.value(query.getSlices()));
1009+
}
1010+
if (query.getSort() != null) {
1011+
ElasticsearchPersistentEntity<?> persistentEntity = getPersistentEntity(clazz);
1012+
List<SortOptions> sortOptions = getSortOptions(query.getSort(), persistentEntity);
1013+
1014+
if (!sortOptions.isEmpty()) {
1015+
dqb.sort(
1016+
sortOptions.stream()
1017+
.map(sortOption -> sortOption.field().field() + ":" + sortOption.field().order().jsonValue())
1018+
.collect(Collectors.toList())
1019+
);
1020+
}
1021+
}
10111022
dqb.allowNoIndices(query.getAllowNoIndices())
1012-
.conflicts(query.getConflicts())
1023+
.conflicts(conflicts(query.getConflicts()))
10131024
.ignoreUnavailable(query.getIgnoreUnavailable())
10141025
.preference(query.getPreference())
10151026
.requestCache(query.getRequestCache())
10161027
.searchType(searchType(query.getSearchType()))
10171028
.searchTimeout(time(query.getSearchTimeout()))
1018-
.slices(query.getSlices())
10191029
.terminateAfter(query.getTerminateAfter())
10201030
.timeout(time(query.getTimeout()))
10211031
.version(query.getVersion());

src/main/java/org/springframework/data/elasticsearch/client/elc/TypeUtils.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import co.elastic.clients.elasticsearch._types.*;
1919
import co.elastic.clients.elasticsearch._types.mapping.FieldType;
2020
import co.elastic.clients.elasticsearch._types.mapping.TypeMapping;
21+
import co.elastic.clients.elasticsearch._types.query_dsl.Operator;
2122
import co.elastic.clients.elasticsearch.core.search.BoundaryScanner;
2223
import co.elastic.clients.elasticsearch.core.search.HighlighterEncoder;
2324
import co.elastic.clients.elasticsearch.core.search.HighlighterFragmenter;
@@ -46,6 +47,8 @@
4647
import org.springframework.data.elasticsearch.core.query.Query;
4748
import org.springframework.data.elasticsearch.core.query.RescorerQuery;
4849
import org.springframework.data.elasticsearch.core.query.UpdateResponse;
50+
import org.springframework.data.elasticsearch.core.query.types.ConflictsType;
51+
import org.springframework.data.elasticsearch.core.query.types.OperatorType;
4952
import org.springframework.data.elasticsearch.core.reindex.ReindexRequest;
5053
import org.springframework.lang.Nullable;
5154
import org.springframework.util.Assert;
@@ -500,4 +503,26 @@ static Map<String, JsonData> paramsMap(Map<String, Object> params) {
500503
});
501504
return mappedParams;
502505
}
506+
507+
/**
508+
* Convert a spring-data-elasticsearch operator to an Elasticsearch operator.
509+
*
510+
* @param operator spring-data-elasticsearch operator.
511+
* @return an Elasticsearch Operator.
512+
*/
513+
@Nullable
514+
static Operator operator(@Nullable OperatorType operator) {
515+
return operator != null ? Operator.valueOf(operator.name()) : null;
516+
}
517+
518+
/**
519+
* Convert a spring-data-elasticsearch {@literal conflicts} to an Elasticsearch {@literal conflicts}.
520+
*
521+
* @param conflicts spring-data-elasticsearch {@literal conflicts}.
522+
* @return an Elasticsearch {@literal conflicts}.
523+
*/
524+
@Nullable
525+
static Conflicts conflicts(@Nullable ConflictsType conflicts) {
526+
return conflicts != null ? Conflicts.valueOf(conflicts.name()) : null;
527+
}
503528
}

0 commit comments

Comments
 (0)