現在の設定は、Spring Data JPAによる主なデータソースとしてMySQLであり、Hibernate Searchでデータのインデックスと検索を行います。私たちはElastic Searchを利用して、他の機能との連携を強化するための検索を行うことにしました。複数のサーバーでインデックス作成と検索を共有する必要があります。バッチインデックス付けSpringデータからElasticSearchへのJPAエントリ
私は、データインデックス作成と検索のためのSpring Data ElasticSearchを使用して、ElasticsearchRepository
からElasticを設定することができます。しかし、今の課題は、既存のすべてのMySQLレコードをElastic Searchにインデックスする方法です。 Hibernate Searchはこれを行うためのAPIを提供しています。常に使用しているorg.hibernate.search.jpa.FullTextEntityManager#createIndexer
です。しかし、私はSpring Data ElasticSearch内で便利なソリューションを見つけることができません。誰かが私をここで助けたり、いくつかの指針を提供してくれることを願っています。
similar question hereがありますが、提案されている解決法は、複数のDBテーブルにマップされたオブジェクト全体をインデックスできるようにするため、私のニーズに合っていません。
エンティティを1:1に保存するか、検索を最適化する(つまり結合を取り除くなど)ために、一部を「平坦化」する必要がありますか? – Val
私は1:1と言います。私のコードでは、私はESの文書としてインデックスの1つのエンティティです。そのため、主に私のシナリオにはきれいな解決策があると思われます。しかし、そのエンティティは、親エンティティ、リレーションシップ、コレクションメンバーなどのために、DB内の複数のテーブルにマップされています。私は現在モバイルになっていますので、必要に応じてコードサンプルを提供することはできません。 – Derek