mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-28 14:52:20 +00:00
Dataes 768 add missing query parameters for an update query.
Original PR: #410
This commit is contained in:
parent
f354f986ca
commit
f8630a09df
@ -19,6 +19,7 @@ import static org.elasticsearch.index.query.QueryBuilders.*;
|
|||||||
import static org.springframework.util.CollectionUtils.*;
|
import static org.springframework.util.CollectionUtils.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -36,6 +37,7 @@ import org.elasticsearch.action.index.IndexRequest;
|
|||||||
import org.elasticsearch.action.index.IndexRequestBuilder;
|
import org.elasticsearch.action.index.IndexRequestBuilder;
|
||||||
import org.elasticsearch.action.search.SearchRequest;
|
import org.elasticsearch.action.search.SearchRequest;
|
||||||
import org.elasticsearch.action.search.SearchRequestBuilder;
|
import org.elasticsearch.action.search.SearchRequestBuilder;
|
||||||
|
import org.elasticsearch.action.support.ActiveShardCount;
|
||||||
import org.elasticsearch.action.update.UpdateRequest;
|
import org.elasticsearch.action.update.UpdateRequest;
|
||||||
import org.elasticsearch.action.update.UpdateRequestBuilder;
|
import org.elasticsearch.action.update.UpdateRequestBuilder;
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
@ -499,6 +501,38 @@ class RequestFactory {
|
|||||||
updateRequest.fetchSource(query.getFetchSource());
|
updateRequest.fetchSource(query.getFetchSource());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (query.getFetchSourceIncludes() != null || query.getFetchSourceExcludes() != null) {
|
||||||
|
List<String> includes = query.getFetchSourceIncludes() != null ? query.getFetchSourceIncludes()
|
||||||
|
: Collections.emptyList();
|
||||||
|
List<String> excludes = query.getFetchSourceExcludes() != null ? query.getFetchSourceExcludes()
|
||||||
|
: Collections.emptyList();
|
||||||
|
updateRequest.fetchSource(includes.toArray(new String[0]), excludes.toArray(new String[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getIfSeqNo() != null) {
|
||||||
|
updateRequest.setIfSeqNo(query.getIfSeqNo());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getIfPrimaryTerm() != null) {
|
||||||
|
updateRequest.setIfPrimaryTerm(query.getIfPrimaryTerm());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getRefresh() != null) {
|
||||||
|
updateRequest.setRefreshPolicy(query.getRefresh().name().toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getRetryOnConflict() != null) {
|
||||||
|
updateRequest.retryOnConflict(query.getRetryOnConflict());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getTimeout() != null) {
|
||||||
|
updateRequest.timeout(query.getTimeout());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getWaitForActiveShards() != null) {
|
||||||
|
updateRequest.waitForActiveShards(ActiveShardCount.parseString(query.getWaitForActiveShards()));
|
||||||
|
}
|
||||||
|
|
||||||
return updateRequest;
|
return updateRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -541,6 +575,38 @@ class RequestFactory {
|
|||||||
updateRequestBuilder.setFetchSource(query.getFetchSource());
|
updateRequestBuilder.setFetchSource(query.getFetchSource());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (query.getFetchSourceIncludes() != null || query.getFetchSourceExcludes() != null) {
|
||||||
|
List<String> includes = query.getFetchSourceIncludes() != null ? query.getFetchSourceIncludes()
|
||||||
|
: Collections.emptyList();
|
||||||
|
List<String> excludes = query.getFetchSourceExcludes() != null ? query.getFetchSourceExcludes()
|
||||||
|
: Collections.emptyList();
|
||||||
|
updateRequestBuilder.setFetchSource(includes.toArray(new String[0]), excludes.toArray(new String[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getIfSeqNo() != null) {
|
||||||
|
updateRequestBuilder.setIfSeqNo(query.getIfSeqNo());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getIfPrimaryTerm() != null) {
|
||||||
|
updateRequestBuilder.setIfPrimaryTerm(query.getIfPrimaryTerm());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getRefresh() != null) {
|
||||||
|
updateRequestBuilder.setRefreshPolicy(query.getRefresh().name().toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getRetryOnConflict() != null) {
|
||||||
|
updateRequestBuilder.setRetryOnConflict(query.getRetryOnConflict());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getTimeout() != null) {
|
||||||
|
updateRequestBuilder.setTimeout(query.getTimeout());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query.getWaitForActiveShards() != null) {
|
||||||
|
updateRequestBuilder.setWaitForActiveShards(ActiveShardCount.parseString(query.getWaitForActiveShards()));
|
||||||
|
}
|
||||||
|
|
||||||
return updateRequestBuilder;
|
return updateRequestBuilder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.springframework.data.elasticsearch.core.query;
|
package org.springframework.data.elasticsearch.core.query;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.springframework.data.elasticsearch.core.document.Document;
|
import org.springframework.data.elasticsearch.core.document.Document;
|
||||||
@ -40,6 +41,14 @@ public class UpdateQuery {
|
|||||||
@Nullable private Boolean scriptedUpsert;
|
@Nullable private Boolean scriptedUpsert;
|
||||||
@Nullable private Boolean docAsUpsert;
|
@Nullable private Boolean docAsUpsert;
|
||||||
@Nullable private Boolean fetchSource;
|
@Nullable private Boolean fetchSource;
|
||||||
|
@Nullable private List<String> fetchSourceIncludes;
|
||||||
|
@Nullable private List<String> fetchSourceExcludes;
|
||||||
|
@Nullable private Integer ifSeqNo;
|
||||||
|
@Nullable private Integer ifPrimaryTerm;
|
||||||
|
@Nullable private Refresh refresh;
|
||||||
|
@Nullable private Integer retryOnConflict;
|
||||||
|
@Nullable String timeout;
|
||||||
|
@Nullable String waitForActiveShards;
|
||||||
|
|
||||||
public static Builder builder(String id) {
|
public static Builder builder(String id) {
|
||||||
return new Builder(id);
|
return new Builder(id);
|
||||||
@ -47,7 +56,11 @@ public class UpdateQuery {
|
|||||||
|
|
||||||
private UpdateQuery(String id, @Nullable String script, @Nullable Map<String, Object> params,
|
private UpdateQuery(String id, @Nullable String script, @Nullable Map<String, Object> params,
|
||||||
@Nullable Document document, @Nullable Document upsert, @Nullable String lang, @Nullable String routing,
|
@Nullable Document document, @Nullable Document upsert, @Nullable String lang, @Nullable String routing,
|
||||||
@Nullable Boolean scriptedUpsert, @Nullable Boolean docAsUpsert, @Nullable Boolean fetchSource) {
|
@Nullable Boolean scriptedUpsert, @Nullable Boolean docAsUpsert, @Nullable Boolean fetchSource,
|
||||||
|
@Nullable List<String> fetchSourceIncludes, @Nullable List<String> fetchSourceExcludes, @Nullable Integer ifSeqNo,
|
||||||
|
@Nullable Integer ifPrimaryTerm, @Nullable Refresh refresh, @Nullable Integer retryOnConflict,
|
||||||
|
@Nullable String timeout, @Nullable String waitForActiveShards) {
|
||||||
|
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.script = script;
|
this.script = script;
|
||||||
this.params = params;
|
this.params = params;
|
||||||
@ -58,6 +71,14 @@ public class UpdateQuery {
|
|||||||
this.scriptedUpsert = scriptedUpsert;
|
this.scriptedUpsert = scriptedUpsert;
|
||||||
this.docAsUpsert = docAsUpsert;
|
this.docAsUpsert = docAsUpsert;
|
||||||
this.fetchSource = fetchSource;
|
this.fetchSource = fetchSource;
|
||||||
|
this.fetchSourceIncludes = fetchSourceIncludes;
|
||||||
|
this.fetchSourceExcludes = fetchSourceExcludes;
|
||||||
|
this.ifSeqNo = ifSeqNo;
|
||||||
|
this.ifPrimaryTerm = ifPrimaryTerm;
|
||||||
|
this.refresh = refresh;
|
||||||
|
this.retryOnConflict = retryOnConflict;
|
||||||
|
this.timeout = timeout;
|
||||||
|
this.waitForActiveShards = waitForActiveShards;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
@ -109,6 +130,46 @@ public class UpdateQuery {
|
|||||||
return fetchSource;
|
return fetchSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public List<String> getFetchSourceIncludes() {
|
||||||
|
return fetchSourceIncludes;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public List<String> getFetchSourceExcludes() {
|
||||||
|
return fetchSourceExcludes;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Integer getIfSeqNo() {
|
||||||
|
return ifSeqNo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Integer getIfPrimaryTerm() {
|
||||||
|
return ifPrimaryTerm;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Refresh getRefresh() {
|
||||||
|
return refresh;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Integer getRetryOnConflict() {
|
||||||
|
return retryOnConflict;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public String getTimeout() {
|
||||||
|
return timeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public String getWaitForActiveShards() {
|
||||||
|
return waitForActiveShards;
|
||||||
|
}
|
||||||
|
|
||||||
public static final class Builder {
|
public static final class Builder {
|
||||||
private String id;
|
private String id;
|
||||||
@Nullable private String script = null;
|
@Nullable private String script = null;
|
||||||
@ -120,6 +181,14 @@ public class UpdateQuery {
|
|||||||
@Nullable private Boolean scriptedUpsert;
|
@Nullable private Boolean scriptedUpsert;
|
||||||
@Nullable private Boolean docAsUpsert;
|
@Nullable private Boolean docAsUpsert;
|
||||||
@Nullable private Boolean fetchSource;
|
@Nullable private Boolean fetchSource;
|
||||||
|
@Nullable private Integer ifSeqNo;
|
||||||
|
@Nullable private Integer ifPrimaryTerm;
|
||||||
|
@Nullable private Refresh refresh;
|
||||||
|
@Nullable private Integer retryOnConflict;
|
||||||
|
@Nullable private String timeout;
|
||||||
|
@Nullable String waitForActiveShards;
|
||||||
|
@Nullable private List<String> fetchSourceIncludes;
|
||||||
|
@Nullable private List<String> fetchSourceExcludes;
|
||||||
|
|
||||||
private Builder(String id) {
|
private Builder(String id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
@ -170,13 +239,61 @@ public class UpdateQuery {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Builder withIfSeqNo(Integer ifSeqNo) {
|
||||||
|
this.ifSeqNo = ifSeqNo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder withIfPrimaryTerm(Integer ifPrimaryTerm) {
|
||||||
|
this.ifPrimaryTerm = ifPrimaryTerm;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder withRefresh(Refresh refresh) {
|
||||||
|
this.refresh = refresh;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder withRetryOnConflict(Integer retryOnConflict) {
|
||||||
|
this.retryOnConflict = retryOnConflict;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder withTimeout(String timeout) {
|
||||||
|
this.timeout = timeout;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder withWaitForActiveShards(String waitForActiveShards) {
|
||||||
|
this.waitForActiveShards = waitForActiveShards;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder withFetchSourceIncludes(List<String> fetchSourceIncludes) {
|
||||||
|
this.fetchSourceIncludes = fetchSourceIncludes;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder withFetchSourceExcludes(List<String> fetchSourceExcludes) {
|
||||||
|
this.fetchSourceExcludes = fetchSourceExcludes;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public UpdateQuery build() {
|
public UpdateQuery build() {
|
||||||
|
|
||||||
if (script == null && document == null) {
|
if (script == null && document == null) {
|
||||||
throw new IllegalArgumentException("either script or document must be set");
|
throw new IllegalArgumentException("either script or document must be set");
|
||||||
}
|
}
|
||||||
return new UpdateQuery(id, script, params, document, upsert, lang, routing, scriptedUpsert, docAsUpsert,
|
return new UpdateQuery(id, script, params, document, upsert, lang, routing, scriptedUpsert, docAsUpsert,
|
||||||
fetchSource);
|
fetchSource, fetchSourceIncludes, fetchSourceExcludes, ifSeqNo, ifPrimaryTerm, refresh, retryOnConflict,
|
||||||
|
timeout, waitForActiveShards);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* names will be lowercased on building the query.
|
||||||
|
*/
|
||||||
|
public enum Refresh {
|
||||||
|
True, False, Wait_For
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,12 +21,23 @@ import static org.springframework.data.elasticsearch.annotations.FieldType.*;
|
|||||||
|
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.val;
|
||||||
|
|
||||||
|
import java.lang.Object;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.elasticsearch.action.support.ActiveShardCount;
|
||||||
|
import org.elasticsearch.action.support.WriteRequest;
|
||||||
|
import org.elasticsearch.action.update.UpdateRequest;
|
||||||
|
import org.elasticsearch.common.unit.TimeValue;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.data.annotation.Id;
|
import org.springframework.data.annotation.Id;
|
||||||
import org.springframework.data.elasticsearch.UncategorizedElasticsearchException;
|
import org.springframework.data.elasticsearch.UncategorizedElasticsearchException;
|
||||||
import org.springframework.data.elasticsearch.annotations.Document;
|
import org.springframework.data.elasticsearch.annotations.Document;
|
||||||
import org.springframework.data.elasticsearch.annotations.Field;
|
import org.springframework.data.elasticsearch.annotations.Field;
|
||||||
|
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
|
||||||
import org.springframework.data.elasticsearch.core.query.UpdateQuery;
|
import org.springframework.data.elasticsearch.core.query.UpdateQuery;
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
|
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
||||||
@ -69,4 +80,43 @@ public class ElasticsearchRestTemplateTests extends ElasticsearchTemplateTests {
|
|||||||
@Id private String id;
|
@Id private String id;
|
||||||
@Field(type = Text, store = true, fielddata = true) private String type;
|
@Field(type = Text, store = true, fielddata = true) private String type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test // DATAES-768
|
||||||
|
void shouldUseAllOptionsFromUpdateQuery() {
|
||||||
|
Map<String, Object> doc = new HashMap<>();
|
||||||
|
doc.put("id", "1");
|
||||||
|
doc.put("message", "test");
|
||||||
|
org.springframework.data.elasticsearch.core.document.Document document = org.springframework.data.elasticsearch.core.document.Document
|
||||||
|
.from(doc);
|
||||||
|
UpdateQuery updateQuery = UpdateQuery.builder("1") //
|
||||||
|
.withDocument(document) //
|
||||||
|
.withIfSeqNo(42) //
|
||||||
|
.withIfPrimaryTerm(13) //
|
||||||
|
.withScript("script")//
|
||||||
|
.withLang("lang") //
|
||||||
|
.withRefresh(UpdateQuery.Refresh.Wait_For) //
|
||||||
|
.withRetryOnConflict(7) //
|
||||||
|
.withTimeout("4711s") //
|
||||||
|
.withWaitForActiveShards("all") //
|
||||||
|
.withFetchSourceIncludes(Collections.singletonList("incl")) //
|
||||||
|
.withFetchSourceExcludes(Collections.singletonList("excl")) //
|
||||||
|
.build();
|
||||||
|
|
||||||
|
UpdateRequest request = getRequestFactory().updateRequest(updateQuery, IndexCoordinates.of("index"));
|
||||||
|
|
||||||
|
assertThat(request).isNotNull();
|
||||||
|
assertThat(request.ifSeqNo()).isEqualTo(42);
|
||||||
|
assertThat(request.ifPrimaryTerm()).isEqualTo(13);
|
||||||
|
assertThat(request.script().getIdOrCode()).isEqualTo("script");
|
||||||
|
assertThat(request.script().getLang()).isEqualTo("lang");
|
||||||
|
assertThat(request.getRefreshPolicy()).isEqualByComparingTo(WriteRequest.RefreshPolicy.WAIT_UNTIL);
|
||||||
|
assertThat(request.retryOnConflict()).isEqualTo(7);
|
||||||
|
assertThat(request.timeout()).isEqualByComparingTo(TimeValue.parseTimeValue("4711s", "test"));
|
||||||
|
assertThat(request.waitForActiveShards()).isEqualTo(ActiveShardCount.ALL);
|
||||||
|
val fetchSourceContext = request.fetchSource();
|
||||||
|
assertThat(fetchSourceContext).isNotNull();
|
||||||
|
assertThat(fetchSourceContext.includes()).containsExactlyInAnyOrder("incl");
|
||||||
|
assertThat(fetchSourceContext.excludes()).containsExactlyInAnyOrder("excl");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,10 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.lang.Double;
|
||||||
|
import java.lang.Integer;
|
||||||
|
import java.lang.Long;
|
||||||
|
import java.lang.Object;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
@ -20,9 +20,19 @@ import static org.assertj.core.api.Assertions.*;
|
|||||||
import static org.springframework.data.elasticsearch.annotations.FieldType.*;
|
import static org.springframework.data.elasticsearch.annotations.FieldType.*;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.val;
|
||||||
|
|
||||||
|
import java.lang.Object;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.elasticsearch.action.search.SearchRequestBuilder;
|
import org.elasticsearch.action.search.SearchRequestBuilder;
|
||||||
|
import org.elasticsearch.action.support.ActiveShardCount;
|
||||||
|
import org.elasticsearch.action.support.WriteRequest;
|
||||||
|
import org.elasticsearch.action.update.UpdateRequestBuilder;
|
||||||
import org.elasticsearch.client.Client;
|
import org.elasticsearch.client.Client;
|
||||||
|
import org.elasticsearch.common.unit.TimeValue;
|
||||||
import org.elasticsearch.index.engine.DocumentMissingException;
|
import org.elasticsearch.index.engine.DocumentMissingException;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -83,6 +93,44 @@ public class ElasticsearchTransportTemplateTests extends ElasticsearchTemplateTe
|
|||||||
assertThat(searchRequestBuilder.request().source().from()).isEqualTo(30);
|
assertThat(searchRequestBuilder.request().source().from()).isEqualTo(30);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test // DATAES-768
|
||||||
|
void shouldUseAllOptionsFromUpdateQuery() {
|
||||||
|
Map<String, Object> doc = new HashMap<>();
|
||||||
|
doc.put("id", "1");
|
||||||
|
doc.put("message", "test");
|
||||||
|
org.springframework.data.elasticsearch.core.document.Document document = org.springframework.data.elasticsearch.core.document.Document
|
||||||
|
.from(doc);
|
||||||
|
UpdateQuery updateQuery = UpdateQuery.builder("1") //
|
||||||
|
.withDocument(document) //
|
||||||
|
.withIfSeqNo(42) //
|
||||||
|
.withIfPrimaryTerm(13) //
|
||||||
|
.withScript("script")//
|
||||||
|
.withLang("lang") //
|
||||||
|
.withRefresh(UpdateQuery.Refresh.Wait_For) //
|
||||||
|
.withRetryOnConflict(7) //
|
||||||
|
.withTimeout("4711s") //
|
||||||
|
.withWaitForActiveShards("all").withFetchSourceIncludes(Collections.singletonList("incl")) //
|
||||||
|
.withFetchSourceExcludes(Collections.singletonList("excl")) //
|
||||||
|
.build();
|
||||||
|
|
||||||
|
UpdateRequestBuilder request = getRequestFactory().updateRequestBuilderFor(client, updateQuery,
|
||||||
|
IndexCoordinates.of("index"));
|
||||||
|
|
||||||
|
assertThat(request).isNotNull();
|
||||||
|
assertThat(request.request().ifSeqNo()).isEqualTo(42);
|
||||||
|
assertThat(request.request().ifPrimaryTerm()).isEqualTo(13);
|
||||||
|
assertThat(request.request().script().getIdOrCode()).isEqualTo("script");
|
||||||
|
assertThat(request.request().script().getLang()).isEqualTo("lang");
|
||||||
|
assertThat(request.request().getRefreshPolicy()).isEqualByComparingTo(WriteRequest.RefreshPolicy.WAIT_UNTIL);
|
||||||
|
assertThat(request.request().retryOnConflict()).isEqualTo(7);
|
||||||
|
assertThat(request.request().timeout()).isEqualByComparingTo(TimeValue.parseTimeValue("4711s", "test"));
|
||||||
|
assertThat(request.request().waitForActiveShards()).isEqualTo(ActiveShardCount.ALL);
|
||||||
|
val fetchSourceContext = request.request().fetchSource();
|
||||||
|
assertThat(fetchSourceContext).isNotNull();
|
||||||
|
assertThat(fetchSourceContext.includes()).containsExactlyInAnyOrder("incl");
|
||||||
|
assertThat(fetchSourceContext.excludes()).containsExactlyInAnyOrder("excl");
|
||||||
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Document(indexName = "test-index-sample-core-transport-template", replicas = 0, refreshInterval = "-1")
|
@Document(indexName = "test-index-sample-core-transport-template", replicas = 0, refreshInterval = "-1")
|
||||||
static class SampleEntity {
|
static class SampleEntity {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user