elasticsearch(四)调用TransportClient删除数据

调用client删除数据,使用DeleteRequest对象处理操作

批量操作使用BulkRequest对象。

private String index;
	private String type;

	@Autowired
	private TransportClient client;

	@Before
	public void prepare() {
		index = "database";
		type = "table";
	}


	/**
	 * 通过ID进行删除
	 */
	@Test
	public void deleteById() {
		// 此处ID是es里面自己生成的ID,与数据ID无关
		String id = "AWb23S95Hj0kMOI7Sqr8";
		DeleteRequest deleteRequest = new DeleteRequest(index, type, id);
		DeleteResponse response = client.delete(deleteRequest).actionGet();
		System.out.println(response);
	}

	/**
	 * 通过数据查询条件删除
	 */
	@Test
	public void deleteByQuery() {
		String deleteText = "test1";
		SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
		sourceBuilder.timeout(new TimeValue(2, TimeUnit.SECONDS));
		TermQueryBuilder termQueryBuilder1 = QueryBuilders.termQuery("name", deleteText);
		sourceBuilder.query(termQueryBuilder1);
		SearchRequest searchRequest = new SearchRequest(index);
		searchRequest.types(type);
		searchRequest.source(sourceBuilder);
		SearchResponse response = client.search(searchRequest).actionGet();
		SearchHits hits = response.getHits();
		List<String> docIds = new ArrayList<>(hits.getHits().length);
		for (SearchHit hit : hits) {
			docIds.add(hit.getId());
		}

		BulkRequest bulkRequest = new BulkRequest();
		for (String id : docIds) {
			DeleteRequest deleteRequest = new DeleteRequest(index, type, id);
			bulkRequest.add(deleteRequest);
		}
		client.bulk(bulkRequest);

	}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值