ElasticSearch рекавери JDBC MySQL не удаляет записи
Я использую плагин JDBC для ElasticSearch, чтобы обновить мою базу данных MySQL. Он собирает новые и измененные записи, но не удаляет записи, которые были удалены из MySQL. Они остаются в индексе.
Вот код, который я использую для создания реки:
curl -XPUT 'localhost:9200/_river/account_river/_meta' -d '{
"type" : "jdbc",
"jdbc" : {
"driver" : "com.mysql.jdbc.Driver",
"url" : "jdbc:mysql://localhost:3306/test",
"user" : "test_user",
"password" : "test_pass",
"sql" : "SELECT `account`.`id` as `_id`, `account`.`id`, `account`.`reference`, `account`.`company_name`, `account`.`also_known_as` from `account` WHERE NOT `account`.`deleted`",
"strategy" : "simple",
"poll" : "5s",
"versioning" : true,
"digesting" : false,
"autocommit" : true,
"index" : "headphones",
"type" : "Account"
}
}'
Установил ElasticSearch через доморощенный на OSX Mountain Lion, без ошибок и проблем, и все отвечает, как ожидалось. Разрешения в порядке, ошибок в логах нет.
Я удалил и включил (и установил в true и false) каждую комбинацию,autocommit
versioning
а такжеdigesting
что я мог придумать. Это'это база данных разработчиков, поэтому яЯ уверен, что записи удаляются полностью, не кэшируются и не удаляются программно. Если я удаляю все записи (т.е. оставляю реку нетронутой и просто удаляю то, что было проиндексировано в ES), при следующем обновлении реки она не добавляет запись повторно, что наводит меня на мысль, что я что-то упустил из-за контроля версий и удаления ,
Обратите внимание, яМы также пробовали различные способы указать_id
столбец, и я проверил, что у него есть значение через JSON при вызове.
Приветствия.