2017-01-04 92 views
0

Elasticsearch版本:5.1.1elasticsearch 5.1的Java API DeleteByQuery

操作系統版本:CentOS的包括預期與實際行爲問題的7

說明: ES 5.1版本不支持刪除,通過查詢插件。 所以我需要更改javaAPI代碼。

以下代碼來自以前的2.3版本。

new DeleteByQueryRequestBuilder(ElasticConnector.getInstance().getJavaClient(), DeleteByQueryAction.INSTANCE) 
.setIndices(GLOBAL_ID) 
    .setTypes(MessageService.DEVICE) 
    .setQuery(QueryBuilders.boolQuery().should(QueryBuilders.termQuery("user_id", user_id)) 
    .should(QueryBuilders.termQuery("device_id", device_id) 
    .mustNot(QueryBuilders.boolQuery() 
    .must(QueryBuilders.termQuery("user_id", user_id)) 
    .must(QueryBuilders.termQuery("device_id", device_id)))) 
    .execute().actionGet(); 

該代碼與

DeleteByQueryRequestBuilder一個問題解決不了的類型

如何改變?

回答

0

我認爲這可以解決你的問題

BulkIndexByScrollResponse response = 
    DeleteByQueryAction.INSTANCE 
    .newRequestBuilder(ESClient) 
    .filter(yourQuery) 
    .source(your index) 
    .get(); 

問候