2015-10-22 5 views
1

У меня есть приложение Java, которое использует баннер elasticsearch для взаимодействия с клиентом elasticsearch.Elasticsearch delete по всем индексам и типам

Что бы я хотел сделать, это удалить что-то из Elastricsearch, когда я знаю только ID. Итак, я не знаю тип индекса ИЛИ. Как я могу это сделать?

Я бы подумал, что работа ...prepareDelete("_all","_all",<id>) или ...prepareDelete("*","*",<id>) будет работать, но ни одна из них не поддерживается в Elasticsearch.

Единственный способ, которым я могу это сделать, - перебрать все индексы и типы и удалить каждый из них с этим ID, но это звучит немного неэффективно, если Elasticsearch уже предоставляет эту функцию.

ответ

0

В ES 1.7 можно сделать еще:

DELETE /_all/_query?q=_id:123 

согласно https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html, но в 2.0 он будет удален.

+0

Я использую бета-версию 2.0 и все еще в состоянии это сделать. Будет ли это удалено, когда 2.0 официально выпущен? – user972276

+0

Это, вероятно, будет удалено, да, и построено как плагин. Взгляните на список удаленных функций здесь: https://www.elastic.co/guide/en/elasticsearch/reference/2.0/_removed_features.html#_delete_by_query_is_now_a_plugin –