Как ограничить _delete_by_query для одного типа при использовании Java-клиента Api - PullRequest
0 голосов
/ 26 июня 2018

Я хочу удалить некоторые документы из es с помощью Java-клиента, например,

curl -X POST "localhost:9200/twitter/tweet/_delete_by_query?conflicts=proceed" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match_all": {}
  }
}
'

, но из документа Apis

BulkByScrollResponse response = DeleteByQueryAction.INSTANCE.newRequestBuilder(client)
    .filter(QueryBuilders.matchQuery("gender", "male")) 
    .source("persons")                                  
    .get();                                             
long deleted = response.getDeleted();                   

кажется, что вы не можете limit _delete_by_query to a single type

1 Ответ

0 голосов
/ 26 июня 2018

Вы всегда можете сделать это так:

QueryBuilder query = QueryBuilders.boolQuery()
    .filter(QueryBuilders.termQuery("_type", "tweet"))
    .filter(QueryBuilders.matchQuery("gender", "male"));

BulkByScrollResponse response = DeleteByQueryAction.INSTANCE.newRequestBuilder(client)
    .filter(query) 
    .source("persons")                                  
    .get();                                             
long deleted = response.getDeleted();                   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...