2

Lucene を利用してアプリケーションで全文検索を開発しようとしていますが、これは私の mysql データベースに基づいてインデックスを作成する必要があります。これらのインデックスをデータベースと同期させる方法はあるのだろうか? 私は次の方法を思いつきました: 1) 検索インデックスを更新するために、ビジネス ロジックに追加のコードをしっかりと追加します。2) 別のタスクを実行して、インデックスを定期的に再構築します。

他のアプローチはありますか?そして、あなたは何が最善の方法だと思いますか? コメントをお待ちしております。よろしくお願いします。

4

3 に答える 3

2

Hibernate を使用している場合は、Hibernate searchプロジェクトを確認してください。多くのボイラープレートをカバーする必要があります。

于 2012-09-03T09:37:08.943 に答える
1

JDBC River プラグインを提供する Elastic Search を使用するか、JPA 経由でエンティティのイベントを使用して手動で更新をトリガーすることができます。

于 2014-12-04T17:00:54.337 に答える
0

MySQL でトリガーを設定して、挿入/更新/削除されたすべてのドキュメントの変更されたドキュメントを更新できます。

また、アプリケーションでフィルター (javax.servlet 仕様) をセットアップして、サーバー要求をインターセプトし、それらがデータベースに到達する前にインデックスにプッシュすることもできます (同じトランザクションで実行することもできますが、実際に必要になることはめったにありません)。 、結果整合性は通常、検索エンジンには問題ありません)。

あなたが言ったように、定期的な更新をスケジュールすることもできます ( Solr のDIHに貢献したものと同様)。

于 2012-08-23T10:01:58.663 に答える