検索

14.4.2. インデックスからのインスタンスの削除

download PDF
データベースから物理的に削除しなくても、Lucene インデックスから特定のタイプのエンティティーまたはすべてのエンティティーを削除することは同様に可能です。この操作はパージと呼ばれ、FullTextSession を介しても実行されます。

例14.62 インデックスからエンティティーの特定のインスタンスを削除

FullTextSession fullTextSession = Search.getFullTextSession(session);
Transaction tx = fullTextSession.beginTransaction();
for (Customer customer : customers) {
    fullTextSession.purge( Customer.class, customer.getId() );
}
tx.commit(); //index is updated at commit time
パージすると、指定された ID のエンティティーが Lucene インデックスから削除されますが、データベースにはアクセスしません。
特定のタイプのすべてのエンティティーを削除する必要がある場合は、purgeAll方法。この操作により、パラメーターとして渡されたタイプのすべてのエンティティーとそのすべてのサブタイプが削除されます。

例14.63 エンティティーのすべてのインスタンスをインデックスから削除する

FullTextSession fullTextSession = Search.getFullTextSession(session);
Transaction tx = fullTextSession.beginTransaction();
fullTextSession.purgeAll( Customer.class );
//optionally optimize the index
//fullTextSession.getSearchFactory().optimize( Customer.class );
tx.commit(); //index changes are applied at commit time
このような操作の後にインデックスを最適化することが推奨されます。
注記
メソッドindexpurge、とpurgeAllFullTextEntityManager でも利用できます。
注記
すべての手動インデックス作成方法 (indexpurge、とpurgeAll) データベースではなくインデックスにのみ影響しますが、トランザクションであるため、トランザクションが正常にコミットされるか、使用するまで適用されません。flushToIndexes
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.