2

настоящее время у меня хрон, который смотрит на поле под названием «ex.set» и выполняет следующие задачи:Как определить, когда новый уникальный термин был вставлен в индекс в определенном поле в определенном индексе в Elasticsearch?

  1. Для каждого индекса, запустить агрегацию термины на поле «ex.set»
  2. Для каждого индекса, получить каждый существующий псевдоним
  3. Для каждого уникальный термин появляется в индексе в «ex.set», если он не имеет существующий псевдоним, создать отфильтрованный псевдоним

задание выполняется каждые десять минут, но большую часть времени ничего не находит. Есть ли способ или плагин (совместимый с 2.3.x), который автоматически обнаружит, когда новый уникальный термин был вставлен в индекс в определенном поле в определенном индексе? И тогда, если есть уникальный элемент, инициирующий создание фильтрованного псевдонима в этом индексе? Заранее благодарю за любые идеи или решения.

ответ

1

Да, я считаю, вы можете использовать Watcher plugin для этого. Он имеет лицензию по умолчанию, действительную в течение 30 дней, после которой some features are disabled, а затем вам понадобится действующая лицензия, чтобы она полностью работала снова.

Основная идея состоит в том, что ваши первые два шага можно поместить в chain input как search inputs, который будет собирать данные.

Затем дополнительный шаг, который сравнивает существующие псевдонимы с терминами из этой агрегации, можно рассматривать как script condition, где вы делаете свою магию сравнения двух наборов. Если ваше условие устанавливает, что необходимо создать новый псевдоним, то в части часов action вы можете использовать webhook action, чтобы вызвать команду REST для создания псевдонима для индекса.

Смежные вопросы