DATAES-18 : Add Support to specify Index Name and type in Delete Query

This commit is contained in:
Mohsin Husen
2013-08-09 14:45:32 +01:00
parent 00ac1e8c95
commit 1152e00a31
4 changed files with 61 additions and 1 deletions

View File

@@ -201,6 +201,13 @@ public interface ElasticsearchOperations {
*/
<T> void delete(DeleteQuery query, Class<T> clazz);
/**
* Delete all records matching the query
*
* @param query
*/
void delete(DeleteQuery query);
/**
* Deletes an index for given entity
*

View File

@@ -295,6 +295,14 @@ public class ElasticsearchTemplate implements ElasticsearchOperations {
.setQuery(deleteQuery.getQuery()).execute().actionGet();
}
@Override
public void delete(DeleteQuery deleteQuery) {
Assert.notNull(deleteQuery.getIndex(), "No index defined for Query");
Assert.notNull(deleteQuery.getType(), "No type define for Query");
client.prepareDeleteByQuery(deleteQuery.getIndex()).setTypes(deleteQuery.getType())
.setQuery(deleteQuery.getQuery()).execute().actionGet();
}
@Override
public String scan(SearchQuery searchQuery, long scrollTimeInMillis, boolean noFields) {
Assert.notNull(searchQuery.getIndices(), "No index defined for Query");

View File

@@ -19,13 +19,15 @@ import org.elasticsearch.index.query.QueryBuilder;
/**
* DeleteQuery
*
*
* @author Rizwan Idrees
* @author Mohsin Husen
*/
public class DeleteQuery {
private QueryBuilder query;
private String index;
private String type;
public QueryBuilder getQuery() {
return query;
@@ -33,5 +35,21 @@ public class DeleteQuery {
public void setQuery(QueryBuilder query) {
this.query = query;
}
public String getIndex() {
return index;
}
public void setIndex(String index) {
this.index = index;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}