2016-08-28 6 views
2

例えば新しい写真(私はのMySQLにデータを永続化するために春-データ-JPAを使用していると私は最近、INSERTにESにデータを挿入する春・データ・elasticsearchを実装しましたアップロードされます)。elasticsearchデータをMySqlと同期させるにはどうすればいいですか?

明らかに、初期データが失効するとすぐに挿入されます。

を例としてInstagramのてみましょう:

  1. あなたが写真を投稿
    • 写真(フォトオブジェクト - 説明、場所、タグ)
    • ユーザー(投稿したユーザー)
    • いいえ(0)
    • コメントはありません(0)

すべてこのデータはelasticsearch写真インデックスの下に挿入されます。ユーザーが写真をコメントとが好きを起動すると、データが古くになります。

どうすればこの問題を解決できますか?

我々は(これはのために現在のすべてのインデックスを削除する意味しますを介してすべての 写真を行くとelasticsearchにX分ごと をそれらのそれぞれを挿入するcronジョブ/タスクを作成します写真)この は長い時間がかかり、多くのリソースを使用するようです!

すべてのデータを再度挿入するのではなく、現在のelasticsearchインデックスをすべて更新するだけですか?

この問題を解決するために何をしましたか?

答えて

3

これを行う標準的な方法は、データベースに最後に更新されたタイプの列を保持し、変更があるたびに更新することです。

インデクサーは、最後にデータを正常にインデックス付けして以来、データベースから何かを照会するだけで済みます。

信頼できる方法によっては、定期的に完全な比較を行う必要があります。

関連する問題