Можно ли в реальном времени автоматически удалять данные, которые, например, старше 10 дней, из эластичного поиска? - PullRequest
0 голосов
/ 25 мая 2018

curl -XGET '127.0.0.1:9200/messages/message/_search?pretty' возвращает данные, как показано ниже.Интересно, можно ли автоматически удалять данные старше 10 дней из эластичного поиска, предпочтительно в режиме реального времени?Я добавил свои данные в качестве примера, потому что в этом случае можно использовать поле date.Или, может быть, есть другой, более рекомендуемый метод?

{
  "took" : 22,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 2,
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "messages",
        "_type" : "message",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "message" : "example message1"
        }
      },
      {
        "_index" : "messages",
        "_type" : "message",
        "_id" : "ZODslt0LZ1T6GMrC",
        "_score" : 1.0,
        "_source" : {
          "date" : "2018-05-25T10:06:06Z",
          "message" : "example message1"
        }
      }
    ]
  }
}

1 Ответ

0 голосов
/ 25 мая 2018

Elastic Куратор это именно то, что вы ищете.Вы должны создать отдельный файл для индекса для каждого дня.

Например, если ваш индекс имеет такой шаблон: YOUR_INDEX_NAME-%{+YYYY.MM.dd}, тогда вы должны применить конфигурацию ниже:

actions:
  1:
    action: delete_indices
    options:
      ignore_empty_list: True
      timeout_override:
      continue_if_exception: False
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: YOUR_INDEX_NAME-
      exclude:
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'  <--- date pattern in your index name
      unit: days
      unit_count: 10          <--- after how many days delete the index
...