Java源码示例:org.elasticsearch.index.reindex.DeleteByQueryRequestBuilder
示例1
@Override
public SqlElasticDeleteByQueryRequestBuilder explain() throws SqlParseException {
this.request = new DeleteByQueryRequestBuilder(client, DeleteByQueryAction.INSTANCE);
setIndicesAndTypes();
setWhere(delete.getWhere());
// maximum number of processed documents
if (delete.getRowCount() > -1) {
request.size(delete.getRowCount());
}
// set conflicts param
updateRequestWithConflicts();
SqlElasticDeleteByQueryRequestBuilder deleteByQueryRequestBuilder = new SqlElasticDeleteByQueryRequestBuilder(request);
return deleteByQueryRequestBuilder;
}
示例2
@Override
public void deleteByQuery(List<String> indices, DeleteByQueryOptions options, Handler<AsyncResult<com.hubrick.vertx.elasticsearch.model.DeleteByQueryResponse>> resultHandler) {
final DeleteByQueryRequestBuilder deleteByQueryRequestBuilder = new DeleteByQueryRequestBuilder(client, DeleteByQueryAction.INSTANCE);
deleteByQueryRequestBuilder.source(indices.toArray(new String[indices.size()]));
if (options != null) {
populateSearchRequestBuilder(deleteByQueryRequestBuilder.source(), options);
if (options.getMaxRetries() != null) deleteByQueryRequestBuilder.setMaxRetries(options.getMaxRetries());
if (options.getSlices() != null) deleteByQueryRequestBuilder.setSlices(options.getSlices());
if (options.getWaitForActiveShards() != null)
deleteByQueryRequestBuilder.waitForActiveShards(ActiveShardCount.from(options.getWaitForActiveShards()));
if (options.getConflicts() != null)
deleteByQueryRequestBuilder.abortOnVersionConflict(Optional.ofNullable(options.getConflicts()).map(e -> !Conflicts.PROCEED.equals(e)).orElse(true));
if (options.getRequestsPerSecond() != null)
deleteByQueryRequestBuilder.setRequestsPerSecond(options.getRequestsPerSecond());
}
deleteByQueryRequestBuilder.execute(new ActionListener<BulkByScrollResponse>() {
@Override
public void onResponse(BulkByScrollResponse deleteByQueryResponse) {
resultHandler.handle(Future.succeededFuture(mapToDeleteByQueryResponse(deleteByQueryResponse)));
}
@Override
public void onFailure(Exception t) {
handleFailure(resultHandler, t);
}
});
}
示例3
public void clearIndices(Elasticsearch7SearchIndex searchIndex) throws Exception {
String[] indices = searchIndex.getClient().admin().indices().prepareGetIndex().execute().get().indices();
for (String index : indices) {
if (index.startsWith(ES_INDEX_NAME) || index.startsWith(ES_EXTENDED_DATA_INDEX_NAME_PREFIX)) {
LOGGER.info("clearing test index: %s", index);
BulkByScrollResponse response = new DeleteByQueryRequestBuilder(searchIndex.getClient(), DeleteByQueryAction.INSTANCE)
.source(index)
.filter(QueryBuilders.matchAllQuery())
.get();
LOGGER.info("removed %d documents", response.getDeleted());
}
}
}
示例4
/**
* Delete all data using DeleteByQuery.
* @param indexName the index to delete
* @param typeName the type to delete
*/
public static void deleteQuery(String indexName, String typeName) {
DeleteByQueryRequestBuilder deleteQueryBuilder = new DeleteByQueryRequestBuilder(client, DeleteByQueryAction.INSTANCE);
deleteQueryBuilder.request().indices(indexName);
if (typeName!=null) {
deleteQueryBuilder.request().getSearchRequest().types(typeName);
}
deleteQueryBuilder.filter(QueryBuilders.matchAllQuery());
deleteQueryBuilder.get();
System.out.println(String.format("Deleted index %s and type %s", indexName, typeName));
}
示例5
public SqlElasticDeleteByQueryRequestBuilder(DeleteByQueryRequestBuilder deleteByQueryRequestBuilder) {
this.deleteByQueryRequestBuilder = deleteByQueryRequestBuilder;
}