Удалить записи, которые не обновляются в эластичном плагине поиска реки

В реке эластичного поиска, если я удалил запись в mysql, она все еще отображается в индексе. Я также включил автоматическую фиксацию. Как синхронизировать mysql и эластичный поиск, а также как сделать дельта-импорт в эластичном?

   {
"type" : "jdbc",
"jdbc" : {
    "driver" : "com.mysql.jdbc.Driver",
    "url" : "jdbc:mysql://localhost:3306/testrivet",
    "user" : "root",
    "password" : "Gemini*123",
    "sql" : [
                        { 
                             "statement" : "select *,empid as _id from empdata"

                        }
       ],
    "strategy" : "simple",
 "schedule" : "0 0-59 0-23 ? * *",
 "autocommit" : true,
 "metrics": {enabled:true}
    },
    "index" : {
   "autocommit":true
    }
}

person Vigneshwaran    schedule 22.08.2015    source источник


Ответы (1)


Действительно, если запись будет удалена из вашей базы данных, ваша река JDBC больше не сможет получить ее, чтобы удалить соответствующую запись в ES.

Альтернативой является «обратимое удаление» записей из вашей базы данных путем установки флага (т. е. нового логического столбца). Флаг будет истинным, когда запись активна, и ложным, когда запись будет удалена. Таким образом, когда ваш процесс импорта будет запущен, вы получите все записи и, основываясь на этом флаге, узнаете, что вам нужно удалить документы из Elasticsearch.

Есть и другие способы, но они включают в себя добавление еще одного компонента в смесь, поэтому, если это сработает, я бы предложил сделать так.

person Val    schedule 23.08.2015