Sejak pertanyaan ini diajukan, parameter telah banyak berubah, versi dan digest telah ditinggalkan, dan polling telah digantikan oleh jadwal, yang akan mengambil ekspresi cron tentang seberapa sering menjalankan ulang sungai (di bawah ini dijadwalkan untuk dijalankan setiap 5 menit )
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",
"schedule": "0 0/5 * * * ?" ,
"autocommit" : true,
"index" : "headphones",
"type" : "Account"
}
}'
Tetapi untuk pertanyaan utama, jawaban yang saya dapatkan dari pengembang adalah inihttps://github.com/jprante/elasticsearch-river-jdbc/issues/213
Saya mencoba housekeeping dengan pembuatan versi, tetapi ini tidak bekerja dengan baik bersama dengan pembaruan tambahan dan penambahan baris.
Metode yang baik adalah pengindeksan berjendela. Setiap jangka waktu (mungkin sekali per hari atau per minggu) indeks baru dibuat untuk sungai, dan ditambahkan ke alias. Indeks lama akan dijatuhkan setelah beberapa saat. Pemeliharaan ini mirip dengan pengindeksan logstash, tetapi berada di luar cakupan sungai.
Metode yang saat ini saya gunakan sebagai aliasing penelitian saya adalah saya membuat ulang indeks dan sungai setiap malam, dan menjadwalkan sungai untuk berjalan setiap beberapa jam. Ini memastikan data baru yang dimasukkan akan diindeks pada hari itu, dan penghapusan akan dilakukan setiap 24 jam