DATAES-97 - Use UpdateRequest instead of IndexRequest

This commit is contained in:
xjrk58 2014-06-20 12:46:32 +02:00 committed by Mohsin Husen
parent cf54ba4e8f
commit 0317dcb275
3 changed files with 28 additions and 10 deletions

View File

@ -394,13 +394,17 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati
Assert.notNull(indexName, "No index defined for Query"); Assert.notNull(indexName, "No index defined for Query");
Assert.notNull(type, "No type define for Query"); Assert.notNull(type, "No type define for Query");
Assert.notNull(query.getId(), "No Id define for Query"); Assert.notNull(query.getId(), "No Id define for Query");
Assert.notNull(query.getIndexRequest(), "No IndexRequest define for Query"); Assert.notNull(query.getUpdateRequest(), "No IndexRequest define for Query");
UpdateRequestBuilder updateRequestBuilder = client.prepareUpdate(indexName, type, query.getId()); UpdateRequestBuilder updateRequestBuilder = client.prepareUpdate(indexName, type, query.getId());
if (query.DoUpsert()) { if (query.DoUpsert()) {
updateRequestBuilder.setDocAsUpsert(true) updateRequestBuilder.setDocAsUpsert(true)
.setUpsert(query.getIndexRequest()).setDoc(query.getIndexRequest()); .setUpsert(query.getUpdateRequest())
.setDoc(query.getUpdateRequest().doc())
.setScript(query.getUpdateRequest().script())
.setScriptParams(query.getUpdateRequest().scriptParams())
.setScriptLang(query.getUpdateRequest().scriptLang());
} else { } else {
updateRequestBuilder.setDoc(query.getIndexRequest()); updateRequestBuilder.setDoc(query.getUpdateRequest().doc());
} }
return updateRequestBuilder.execute().actionGet(); return updateRequestBuilder.execute().actionGet();
} }

View File

@ -16,6 +16,7 @@
package org.springframework.data.elasticsearch.core.query; package org.springframework.data.elasticsearch.core.query;
import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.update.UpdateRequest;
/** /**
* @author Rizwan Idrees * @author Rizwan Idrees
@ -24,7 +25,7 @@ import org.elasticsearch.action.index.IndexRequest;
public class UpdateQuery { public class UpdateQuery {
private String id; private String id;
private IndexRequest indexRequest; private UpdateRequest updateRequest;
private String indexName; private String indexName;
private String type; private String type;
private Class clazz; private Class clazz;
@ -38,12 +39,12 @@ public class UpdateQuery {
this.id = id; this.id = id;
} }
public IndexRequest getIndexRequest() { public UpdateRequest getUpdateRequest() {
return indexRequest; return updateRequest;
} }
public void setIndexRequest(IndexRequest indexRequest) { public void setUpdateRequest(UpdateRequest updateRequest) {
this.indexRequest = indexRequest; this.updateRequest = updateRequest;
} }
public String getIndexName() { public String getIndexName() {

View File

@ -16,6 +16,7 @@
package org.springframework.data.elasticsearch.core.query; package org.springframework.data.elasticsearch.core.query;
import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.update.UpdateRequest;
/** /**
* @author Rizwan Idrees * @author Rizwan Idrees
@ -24,6 +25,7 @@ import org.elasticsearch.action.index.IndexRequest;
public class UpdateQueryBuilder { public class UpdateQueryBuilder {
private String id; private String id;
private UpdateRequest updateRequest;
private IndexRequest indexRequest; private IndexRequest indexRequest;
private String indexName; private String indexName;
private String type; private String type;
@ -35,6 +37,11 @@ public class UpdateQueryBuilder {
return this; return this;
} }
public UpdateQueryBuilder withUpdateRequest(UpdateRequest updateRequest) {
this.updateRequest = updateRequest;
return this;
}
public UpdateQueryBuilder withIndexRequest(IndexRequest indexRequest) { public UpdateQueryBuilder withIndexRequest(IndexRequest indexRequest) {
this.indexRequest = indexRequest; this.indexRequest = indexRequest;
return this; return this;
@ -66,7 +73,13 @@ public class UpdateQueryBuilder {
updateQuery.setIndexName(indexName); updateQuery.setIndexName(indexName);
updateQuery.setType(type); updateQuery.setType(type);
updateQuery.setClazz(clazz); updateQuery.setClazz(clazz);
updateQuery.setIndexRequest(indexRequest); if (this.indexRequest != null) {
if (this.updateRequest == null) {
updateRequest = new UpdateRequest();
}
updateRequest.doc(indexRequest);
}
updateQuery.setUpdateRequest(updateRequest);
updateQuery.setDoUpsert(doUpsert); updateQuery.setDoUpsert(doUpsert);
return updateQuery; return updateQuery;
} }