Удалить все индексы, кроме одного / некоторых в Elasticsearch? - PullRequest
0 голосов
/ 28 августа 2018

Есть ли способ удалить все индексы, кроме одного?

Мы можем использовать метаданные _index документа в GET запросе:

GET _count
{
  "query": {
    "match": {
      "_index": "indexname"
    }
  }
}

Приведенный выше запрос не имеет смысла, он просто показывает, что мы можем использовать _index внутри запроса, который я упомянул.

Я пробовал приведенный ниже запрос, но, думаю, _all API не поддерживает запрос.

DELETE _all
{
  "query" : {
  "bool" : {
   "must_not" : [
     {
       "match": {
         "_index": "indexname"
       }
     }
   ]
  }
 }
}

Есть ли способ удалить все индексы, кроме одного / некоторых, без использования массового API?

1 Ответ

0 голосов
/ 28 августа 2018

Попробуйте использовать несколько индексов синтаксис. Вы можете указать все индексы с помощью *, а затем исключить некоторые из них с помощью -.

Предположим, нам нужно удалить все индексы, кроме foo и bar, поэтому HTTP-запрос должен быть

curl -X DELETE -i 'http://{server}:{port}/*,-foo,-bar'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...