ElasticSearch6.X版本Java Api中文詳解(三)之Get Api、Delete API 、Delete By Query API解析
阿新 • • 發佈:2020-09-21
- 例如這個導航網站 索引超過幾百萬條資料www.roak.com
- Get
- Delete
- Delete By Query
Get Api
get API允許根據它的id從索引中獲得一個型別化的JSON文件,下面的例子從一個名為twitter的索引中獲得一個JSON文件,在一個名為tweet的型別下,id值為1:
GetResponse response = client.prepareGet("twitter", "tweet", "1").get();
Delete Api
delete API允許一個人根據其id從特定的索引中刪除一個型別化的JSON文件,下面的例子從一個名為twitter的索引中刪除了JSON文件,在一個名為tweet的型別下,id值為1:
DeleteResponse response = client.prepareDelete("twitter", "tweet", "1").get();
Delete By Query
查詢API的delete允許根據查詢的結果刪除給定的一組文件:
- BulkByScrollResponse response = DeleteByQueryAction.INSTANCE.newRequestBuilder(client)
- .filter(QueryBuilders.matchQuery("gender","male"))
- .source("persons")
- .get();
- long deleted = response.getDeleted();
因為它可以是一個長時間執行的操作,如果您希望非同步地完成它,您可以呼叫execute而不是get並提供一個偵聽器:
- DeleteByQueryAction.INSTANCE.newRequestBuilder(client)
- .filter(QueryBuilders.matchQuery("gender","male"))
- .source("persons")
-
.execute(new ActionListener<BulkByScrollResponse>() {
- publicvoidonResponse(BulkByScrollResponse response) {
- long deleted = response.getDeleted();
- }
- publicvoidonFailure(Exception e) {
- // Handle the exception
- }
- });