Удалять в журналеasticsearch, когда не существует на входе - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть база данныхasticsearch, и я хочу удалить все документы, если их нет в операторе ввода? Можете ли вы помочь мне, пожалуйста,

Заранее спасибо

input {
jdbc {
    jdbc_validate_connection => true
    jdbc_connection_string => "jdbc:postgresql://xxxx:xxxx/xxxx"
    jdbc_user => "xxxx"
    jdbc_password => "xxxx"
    jdbc_driver_library => "/usr/share/logstash/Drivers/postgres/postgresql-9.4.1212.jar"
    jdbc_driver_class => "org.postgresql.Driver"
    statement => "SELECT acso.usagers.id as id FROM acso.usagers WHERE acso.usagers.date_suppression is null"
    tags => ["idUsagers"]
}}  filter {}output {
elasticsearch {
    action => delete
    index => "usagers"
    document_type => "atms"
    doc_as_upsert => true
    document_id => "%{id}"
    hosts => "xxxxxx.example.org"}}

1 Ответ

0 голосов
/ 09 ноября 2018

Если я правильно понимаю ваш вопрос, вы хотите удалить все документы из ES, которые не возвращены вашим запросом JDBC. Если это правильно, я вижу два варианта:

  • запустите запрос, поместите результаты в новый индекс и используйте этот индекс для запросов. Вы можете создать псевдоним индекса , чтобы при необходимости скрыть фактическое имя индекса из вашего приложения.
  • запустите запрос и обновите любого документа в ES, чтобы показать, что они все еще существуют. Удалить документы, которые не помечены.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...