Skip to content

Commit 0317dcb

Browse files
xjrk58mohsinh
authored andcommitted
DATAES-97 - Use UpdateRequest instead of IndexRequest
1 parent cf54ba4 commit 0317dcb

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -394,13 +394,17 @@ public UpdateResponse update(UpdateQuery query) {
394394
Assert.notNull(indexName, "No index defined for Query");
395395
Assert.notNull(type, "No type define for Query");
396396
Assert.notNull(query.getId(), "No Id define for Query");
397-
Assert.notNull(query.getIndexRequest(), "No IndexRequest define for Query");
397+
Assert.notNull(query.getUpdateRequest(), "No IndexRequest define for Query");
398398
UpdateRequestBuilder updateRequestBuilder = client.prepareUpdate(indexName, type, query.getId());
399399
if (query.DoUpsert()) {
400400
updateRequestBuilder.setDocAsUpsert(true)
401-
.setUpsert(query.getIndexRequest()).setDoc(query.getIndexRequest());
401+
.setUpsert(query.getUpdateRequest())
402+
.setDoc(query.getUpdateRequest().doc())
403+
.setScript(query.getUpdateRequest().script())
404+
.setScriptParams(query.getUpdateRequest().scriptParams())
405+
.setScriptLang(query.getUpdateRequest().scriptLang());
402406
} else {
403-
updateRequestBuilder.setDoc(query.getIndexRequest());
407+
updateRequestBuilder.setDoc(query.getUpdateRequest().doc());
404408
}
405409
return updateRequestBuilder.execute().actionGet();
406410
}

src/main/java/org/springframework/data/elasticsearch/core/query/UpdateQuery.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package org.springframework.data.elasticsearch.core.query;
1717

1818
import org.elasticsearch.action.index.IndexRequest;
19+
import org.elasticsearch.action.update.UpdateRequest;
1920

2021
/**
2122
* @author Rizwan Idrees
@@ -24,7 +25,7 @@
2425
public class UpdateQuery {
2526

2627
private String id;
27-
private IndexRequest indexRequest;
28+
private UpdateRequest updateRequest;
2829
private String indexName;
2930
private String type;
3031
private Class clazz;
@@ -38,14 +39,14 @@ public void setId(String id) {
3839
this.id = id;
3940
}
4041

41-
public IndexRequest getIndexRequest() {
42-
return indexRequest;
42+
public UpdateRequest getUpdateRequest() {
43+
return updateRequest;
4344
}
4445

45-
public void setIndexRequest(IndexRequest indexRequest) {
46-
this.indexRequest = indexRequest;
46+
public void setUpdateRequest(UpdateRequest updateRequest) {
47+
this.updateRequest = updateRequest;
4748
}
48-
49+
4950
public String getIndexName() {
5051
return indexName;
5152
}

src/main/java/org/springframework/data/elasticsearch/core/query/UpdateQueryBuilder.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package org.springframework.data.elasticsearch.core.query;
1717

1818
import org.elasticsearch.action.index.IndexRequest;
19+
import org.elasticsearch.action.update.UpdateRequest;
1920

2021
/**
2122
* @author Rizwan Idrees
@@ -24,6 +25,7 @@
2425
public class UpdateQueryBuilder {
2526

2627
private String id;
28+
private UpdateRequest updateRequest;
2729
private IndexRequest indexRequest;
2830
private String indexName;
2931
private String type;
@@ -35,6 +37,11 @@ public UpdateQueryBuilder withId(String id) {
3537
return this;
3638
}
3739

40+
public UpdateQueryBuilder withUpdateRequest(UpdateRequest updateRequest) {
41+
this.updateRequest = updateRequest;
42+
return this;
43+
}
44+
3845
public UpdateQueryBuilder withIndexRequest(IndexRequest indexRequest) {
3946
this.indexRequest = indexRequest;
4047
return this;
@@ -66,7 +73,13 @@ public UpdateQuery build() {
6673
updateQuery.setIndexName(indexName);
6774
updateQuery.setType(type);
6875
updateQuery.setClazz(clazz);
69-
updateQuery.setIndexRequest(indexRequest);
76+
if (this.indexRequest != null) {
77+
if (this.updateRequest == null) {
78+
updateRequest = new UpdateRequest();
79+
}
80+
updateRequest.doc(indexRequest);
81+
}
82+
updateQuery.setUpdateRequest(updateRequest);
7083
updateQuery.setDoUpsert(doUpsert);
7184
return updateQuery;
7285
}

0 commit comments

Comments
 (0)