0

Hibernate で全文クエリを実行する必要があり、Hibernate Seach は適切な選択のようです。シノニムなどを照合する機能は非常に興味深いものです。問題は、私のアプリケーションがクエリのみを実行し、別のアプリケーションが挿入/更新/削除を実行することです。「hibernate seach」がこのシナリオで更新されたテキスト インデックスを保持できるかどうかはわかりません。できない場合、各クエリでインデックスを再構築することはオプションではないと思います (そうですか?)。

データベースで更新を実行するアプリケーションには、アプリケーションに対してイベントを生成する機能があります。これは、インデックスを更新する機会になる可能性があります...

どんな提案も高く評価されます。前もって感謝します:

カルロス。

4

2 に答える 2

1

この他のアプリケーションは、インデックスの更新をトリガーできる Java アプリケーションではないと思います。この場合、インデックスが適切に更新されることを確認する必要があります。Java アプリケーションに通知を送信して更新をトリガーすることができれば、すでに多くの成果が得られています。たとえば、変更されたエンティティの主キーを送信できる場合は、これらの ID を使用して、インデックス内のこれらのエンティティのみを更新できます。インデックス全体を再構築する必要はありません。もう 1 つの方法は、最後に更新された列を使用することです。インデックス作成アプリは、通知を受け取ると、更新の最後のトリガー以降に変更されたレコードを選択します。テーブルがどのように見えるか、および要件が何であるかによって少し異なります。

于 2013-03-23T10:09:12.757 に答える
0

はい、ほとんどの場合、完全なインデックスの再構築に時間がかかりすぎます。しかし、イベントを受け取ることができれば問題ありません。イベントが受信されたときにエンティティを手動で再インデックスするだけです。

ところで、PostgreSQL または Oracle を使用している場合は、PostgreSQL FTSおよびOracle Textを確認してください。

于 2013-03-23T10:09:25.593 に答える