ES高级用法:DeleteByQueryRequest
    		       		warning:
    		            这篇文章距离上次修改已过431天,其中的内容可能已经有所变动。
    		        
        		                
                DeleteByQueryRequest 是 Elasticsearch 提供的一个功能,用于根据指定的查询条件删除文档。以下是一个使用 Java High Level REST Client 的示例代码:
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.TermQueryBuilder;
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
import java.io.IOException;
 
public class DeleteByQueryExample {
    public static void main(String[] args) throws IOException {
        try (RestHighLevelClient client = new RestHighLevelClient(...)) {
            DeleteByQueryRequest request = new DeleteByQueryRequest("index_name"); // 替换为你的索引名
 
            // 设置查询条件
            request.setQuery(QueryBuilders.matchQuery("field_name", "value")); // 替换为你的字段名和值
 
            // 可选:设置批量大小
            request.setBatchSize(1000);
 
            // 可选:设置超时时间
            request.setTimeout(TimeValue.timeValueMinutes(2));
 
            // 执行删除操作
            client.deleteByQuery(request, RequestOptions.DEFAULT);
        }
    }
}确保你已经设置了 Elasticsearch 的 RestHighLevelClient,并替换了 index_name 和查询条件为你的索引名和具体条件。这段代码会删除所有匹配指定查询条件的文档。
评论已关闭