Skip to content

Commit

Permalink
Set refresh on DeleteByQueryRequest by DeleteQuery (#336)
Browse files Browse the repository at this point in the history
Signed-off-by: Han Seungwoo <[email protected]>
  • Loading branch information
tuguri8 authored Sep 4, 2024
1 parent 6ff5558 commit 5fe0f05
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -596,7 +596,7 @@ public DeleteByQueryRequest documentDeleteByQueryRequest(
DeleteByQueryRequest deleteByQueryRequest = new DeleteByQueryRequest(index.getIndexNames()) //
.setQuery(searchRequest.source().query()) //
.setAbortOnVersionConflict(false) //
.setRefresh(deleteByQueryRefresh(refreshPolicy))
.setRefresh(query.getRefresh() != null ? query.getRefresh() : deleteByQueryRefresh(refreshPolicy))
.setIndicesOptions(
new org.opensearch.action.support.IndicesOptions(
options.isEmpty()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1018,6 +1018,9 @@ public DeleteByQueryRequest documentDeleteByQueryRequest(DeleteQuery query, @Nul
.collect(Collectors.toList()));
}
}
if (query.getRefresh() != null) {
dqb.refresh(query.getRefresh());
}
dqb.allowNoIndices(query.getAllowNoIndices())
.conflicts(conflicts(query.getConflicts()))
.ignoreUnavailable(query.getIgnoreUnavailable())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1106,6 +1106,19 @@ void shouldSetRefreshFalseIfRefreshPolicyIsWaitUntilInDeleteByQuery() {
assertThat(deleteByQueryRequest.isRefresh()).isFalse();
}

@Test // #335
@DisplayName("should set refresh based on deleteRequest")
void refreshSetByDeleteRequest() {
var methodIndexName = "method-index-name";
var query = new CriteriaQuery(new Criteria("lastName").contains("test"));
var deleteQuery = DeleteQuery.builder(query).withRefresh(true).build();

var deleteByQueryRequest = requestFactory.documentDeleteByQueryRequest(deleteQuery, null, Person.class,
IndexCoordinates.of(methodIndexName), null);

assertThat(deleteByQueryRequest.isRefresh()).isTrue();
}

// region entities
static class Person {
@Nullable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@
import org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
import org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext;
import org.springframework.data.elasticsearch.core.query.Criteria;
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
import org.springframework.data.elasticsearch.core.query.DeleteQuery;
import org.springframework.data.elasticsearch.core.query.DocValueField;
import org.springframework.data.elasticsearch.core.query.StringQuery;
import org.springframework.lang.Nullable;
Expand Down Expand Up @@ -69,6 +72,19 @@ void shouldAddDocvalueFields() {
assertThat(fieldAndFormats.get(1).format()).isEqualTo("format2");
}

@Test // #335
@DisplayName("should set refresh based on deleteRequest")
void refreshSetByDeleteRequest() {
var query = new CriteriaQuery(new Criteria("text").contains("test"));
var deleteQuery = DeleteQuery.builder(query).withRefresh(true).build();

var deleteByQueryRequest = requestConverter.documentDeleteByQueryRequest(deleteQuery, null, SampleEntity.class,
IndexCoordinates.of("foo"),
null);

assertThat(deleteByQueryRequest.refresh()).isTrue();
}

@Document(indexName = "does-not-matter")
static class SampleEntity {
@Nullable
Expand Down

0 comments on commit 5fe0f05

Please sign in to comment.