2017-01-04 4 views
0

Elasticsearch Version: 5.1.1Elasticsearch 5.1 java api DeleteByQuery

OS Version: centos 7

Beschreibung des Problems und dem tatsächlichen Verhalten erwartet einschließlich: ES 5.1-Version nicht löschen-by-Abfrage unterstützt Plugin . also muss ich den JavaAPI-Code ändern.

Der folgende Code ist von der vorherigen Version 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(); 

Dieser Code hat ein Problem mit

DeleteByQueryRequestBuilder kann nicht auf eine Art gelöst werden

Wie kann ich?

Antwort

0

Ich denke, das Ihr Problem

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

Grüße

lösen kann
Verwandte Themen