ElasticSearch - переиндексация из Remote по расписанию с ежедневным удалением по исходному индексу - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть индекс (назовем его index01) для экземпляра ElasticSearch # 1 (назовем это ES1) для Linux-бокса в США.У меня есть еще один экземпляр ElasticSearch на компьютере с Linux в Великобритании (назовем его ES2).То, что мне нужно сделать, - это дублировать index01 из ES1 в ES2, один раз в день.

Сначала я подумал, что было бы достаточно просто использовать функцию Reindex from Remote, но теперь я поражен и запутанпо документации.

Итак, я сначала создал индекс на ES2 под названием index01, используя те же настройки и параметры, что и index01 на ES1.Затем, согласно документации, я должен сделать этот вызов для построения индекса:

POST _reindex
{
  "source": {
    "remote": {
      "host": "http://otherhost:9200",
      "username": "user",
      "password": "pass"
    },
    "index": "source",
    "query": {
      "match": {
        "test": "data"
      }
    }
  },
  "dest": {
    "index": "dest"
  }
}

Оказывается, мне не нужно ничего вставлять в предложение query как часть matchтак как я просто хочу перенести весь индекс.

1-й вопрос: каждый день к index01 на ES1 добавляется много документов и много документов удаляется из него.Как мне синхронизировать два индекса и убедиться, что index01 на ES2 точно соответствует ES1?

2-й вопрос - возможно ли это сделать по расписанию, используя только Postman, или мне нужно будет создать приложение вЧтобы эта синхронизация происходила каждые 24 часа?

1 Ответ

0 голосов
/ 25 сентября 2018

Reindex просто копирует информацию из одного индекса в другой.Он не отслеживает изменения.

Итак, ответ на первый вопрос: вы не можете использовать простой переиндекс.Вы должны удалить индекс из ES2 и после переиндексировать индекс из ES1.

Если в ES1 не было удалений, шаг удаления индекса не был необходим из-за свойства op_type:create.(Отметьте https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html)

Что касается второго вопроса, вы можете сделать это непосредственно из Почтальона, используя 2 вызова:

  • первый вызов: удалить индекс из ES2
  • второй вызов: переиндексация из ES1 в ES2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...