13.4. Modifications d'index manuelles
Hibernate Search détecte les modifications effectuées par Hibernate Core sur la base de données et mettra l'index à jour automatiquement (sauf si les EventListeners sont désactivés). Parfois, des modifications sont effectuées sur la base de données sans utiliser Hibernate, comme lorsque la mise à jour est restaurée ou que vos donénes sont affectées. Dans ces cas-là, Hibernate Search expose les API d'index manuels pour mettre à jour ou supprimer explicitement une entrée unique de l'index, reconstruire l'index pour la base de données entière ou supprimer toutes les références à un type spécifique.
Toutes ces méthodes affectent uniquement l'index Lucene. Aucune modification ne s'applique à la base de données.
13.4.1. Ajout d'instances à l'index Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
FullTextSession.index(T entity) vous permet d'ajouter ou de mettre à jour directement une instance d'objet spécifique à l'index. Si cette entité a été déjà été indexée, l'index sera alors mis à jour. Les changements apportés à l'index ne sont appliqués à la validation de la transaction.
Exemple 13.56. Indexation d'une entité avec FullTextSession.index(T entity)
FullTextSession fullTextSession = Search.getFullTextSession(session); Transaction tx = fullTextSession.beginTransaction(); Object customer = fullTextSession.load( Customer.class, 8 ); fullTextSession.index(customer); tx.commit(); //index only updated at commit time
FullTextSession fullTextSession = Search.getFullTextSession(session);
Transaction tx = fullTextSession.beginTransaction();
Object customer = fullTextSession.load( Customer.class, 8 );
fullTextSession.index(customer);
tx.commit(); //index only updated at commit time
Si vous souhaitez ajouter toutes les instances d'un type ou de tous les types indexés, il est recommandé d'utiliser un
MassIndexer : voir Section 13.4.3.2, « Utilisation d'un MassIndexer » pour plus d'informations.