2010-01-21 5 views

Répondre

3

Il existe une méthode d'index désactivée de la fonction IFullTextSearchSession qui forcera et indexera une entité. Il suffit donc de récupérer tous les objets, puis d'appeler l'index.

1

Voici un exemple:

public void Index(List<object> entities, ISession s) 
    { 
     using (var search = NHibernate.Search.Search.CreateFullTextSession(s)) 
     { 
      foreach (var entity in entities) 
      { 
       using (var tx = s.BeginTransaction()) 
       { 
        search.Index(entity); 
        tx.Commit(); 
       } 

      } 
     } 
+0

Qu'en est-il effacer d'abord l'indice? Comment cela peut-il être fait? – Bertvan

+0

Je voudrais juste construire un index à un emplacement séparé, puis supprimer et copier sur les index existants pour minimiser le "temps d'arrêt". –

+0

J'ai trouvé 'search.PurgeAll (type)' convient à mes besoins aussi :-) – Bertvan

Questions connexes