Sedan denna fråga har ställts har parametrarna ändrats kraftigt, versionshantering och sammanfattning har fasats ut, och omröstningen har ersatts av schema, som kommer att ta ett cron uttryck för hur ofta man ska köra floden igen (nedan är schemalagd att köras var 5:e minut )
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"
}
}'
Men för huvudfrågan är svaret jag fick från utvecklaren dettahttps://github.com/jprante/elasticsearch-river-jdbc/issues/213
Jag försökte hushållning med versionshantering, men det fungerade inte bra tillsammans med inkrementella uppdateringar och lägga till rader.
En bra metod skulle vara fönsterindexering. Varje tidsram (kanske en gång per dag eller per vecka) skapas ett nytt index för floden och läggs till ett alias. Gamla index ska släppas efter ett tag. Detta underhåll liknar logstash-indexering, men det ligger utanför en flods omfattning.
Metoden jag för närvarande använder som ett I-forskningsalias är att jag återskapar indexet och floden varje natt och schemalägger att floden ska köras med några timmars mellanrum. Det säkerställer att ny data som läggs in kommer att indexeras den dagen, och raderingar kommer att återspeglas var 24:e timme