Переиндексирование elasticsearch и удаление старых записей

Я пытаюсь найти правильный способ переиндексации моего индекса elasticsearch без простоев. Я использую библиотека Python для взаимодействия с ES. Версия ES - 6.4.

Вот мой рабочий процесс:

  1. Создайте два псевдонима: один для поиска и один для индексации.
  2. Псевдоним поиска на old_index и new_index
  3. Псевдоним индекса точки для new_index
  4. Позвоните Reindex API
  5. Дождитесь процесса переиндексации и удалите псевдоним поиска для old_index.
  6. Удалить old_index

Однако здесь есть одно предостережение в виде дублирования записей во время переиндексации. Запись может быть как в old_index, так и в new_index.

Есть ли способ как автоматически удалять записи при их перемещении new_ index?

Я пробовал что-то вроде этого. Очевидно, это удалит все записи в new_index вместо old_index.

POST _reindex
{
  "source": {
    "index": "old_index"
  },
  "dest": {
    "index": "new_index",
  },
  "script": {
    "source": "ctx.op = 'delete'",
    "lang": "painless"
  }
}

Ваш old_index статичен или будут изменения (вставки, обновления, удаления) во время переиндексации?

ibexit 26.10.2018 21:50

Ну могут быть какие то обновления, удаления.

Joozty 26.10.2018 21:52

Затем не забудьте использовать псевдоним поиска также для операций записи, поскольку вам необходимо опубликовать изменения также в уже переиндексированных документах в новом индексе.

ibexit 26.10.2018 21:56

Тогда вам не нужно искать по обоим индексам при переиндексации

ibexit 26.10.2018 21:59

Я не могу установить два псевдонима для операций записи. Из документа: 'Только один индекс для каждого псевдонима может быть назначен как индекс записи'

Joozty 26.10.2018 22:00

Да, ты прав. Извините за запутанность.

ibexit 26.10.2018 22:10

Затем вам нужно будет перезапустить процесс переиндексации с помощью version_type: external после изменения псевдонима обновления на новый индекс. Тогда все изменения после _reindex start будут применены к новому индексу.

ibexit 26.10.2018 22:15

Это не решит повторяющиеся результаты при переиндексации, не так ли?

Joozty 26.10.2018 22:19

Позвольте нам продолжить обсуждение в чате.

ibexit 26.10.2018 22:26
3
9
876
0

Другие вопросы по теме