ElasticsearchのRiverプラグインで定期的にMySQLからデータ取り込みすると重複する
ElasticsearchのRiverプラグインを使って定期的にMySQLからデータを取得したいと考えています。
基本的にデータはMySQLに保存し、検索のみElasticsearchから取得するのが目的です。
scheduleパラメータを使うと定期的にMySQLとコネクションするそうなので1時間ごとにMySQLと同期したいのですが、2回目以降の取得でデータが随時追加されていってしまいます。
例えば、articlesテーブルに10件しかデータがない場合、初回の取り込みは10件ですが、1時間後に2回目の取り込みをすると重複してるにも関わらずさらに10件取得してしまい、Elasticsearch側には20件ドキュメントが存在してしまいます。
常にMySQLのレコード数と同期を取りたいのですがどうすればよいでしょうか?
以下MySQLからデータを取り込む設定です。
{
"type" : "jdbc",
"jdbc" : {
"url" : "jdbc:mysql://localhost:3306/blog_name",
"user" : "root",
"password" : "password",
"schedule" : "0 0 0-23 ? * *",
"sql" : "select * from articles",
"index" : "blog_name",
"type" : "articles"
}
}