Как удалить данные из определенного индекса вasticsearch после определенного периода? - PullRequest
1 голос
/ 14 марта 2019

У меня есть индекс вasticsearch, который занят некоторыми файлами json с отметкой времени .Я хочу удалить данные из этого индекса.

curl -XDELETE http://localhost:9200/index_name

Выше кода удаляет весь индекс.Мое требование - удалить определенные данные через определенный период времени (например, через 1 неделю).Могу ли я автоматизировать процесс удаления?

Я пытался удалить с помощью куратор .

Но я думаю, что он удаляет индексы, созданные с помощью timestamp, а не данные синдекс.Можем ли мы использовать куратор для удаления данных в индексе?

Будет приятно узнать, что сработает одно из следующих действий:

  • Может ли Curl Automate удалять данные изиндекс после периода?
  • Может ли куратор автоматизировать удаление данных из индекса после периода?
  • Есть ли какой-нибудь другой способ, как скриптинг на Python, для выполнения работы?

Ссылки взяты с официального сайта asticsearch .

Заранее большое спасибо.

Ответы [ 2 ]

2 голосов
/ 14 марта 2019

Вы можете использовать DELETE BY QUERY API: https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html

В основном он удалит все документы, соответствующие предоставленному запросу:

POST twitter/_delete_by_query
{
  "query": { 
    "match": {
      "message": "some message"
    }
  }
}

Но предложенный способ заключается в реализации индексовдля разных периодов (например, дней) и используйте curator для их периодического отбрасывания на основе age:

...
logs_2019.03.11
logs_2019.03.12
logs_2019.03.13
logs_2019.03.14
0 голосов
/ 14 марта 2019

Вы всегда можете удалить отдельные документы , используя метод HTTP-запроса DELETE .

Чтобы узнать, какие идентификаторы вы хотите удалить, вам нужно запросить свойданные.Вероятно, с помощью фильтра / запроса диапазона в вашей временной метке.

Поскольку вы взаимодействуете с API REST, вы можете сделать это с помощью Python или любого другого языка.Существует также Java-клиент, если вы предпочитаете более прямой API.

...