2011-03-11 4 views
0

Lorsque je cherchais une solution d'index de texte intégral SQL dans Nhinbernate, je suis tombé sur la solution Lucene.Net, et j'ai trouvé et excellent article au http://www.d80.co.uk/post/2011/03/04/Nhibernate-Search-Tutorial-with-LuceneNet-and-NHibernate-30.aspx.Nhibernate recherche avec Lucene.Net, données historiques

Maintenant, j'ai une autre question qui, j'ai une application existante et je la migre pour utiliser Nhibernate. Pour que la fonction de recherche fonctionne correctement, j'assume le besoin de précharger d'abord toutes les données existantes dans l'index Lucene.

Puisque Nhibernate.search est un wrap autour de Lucene.Net, je pense qu'il doit avoir sa propre convention de document/champ. Donc, n'importe qui a une meilleure pratique ou un exemple de code comment dois-je précharger les données dans la base de données dans l'index Lucene?

Merci Hardy

Répondre

1

bien c'est une configuration vraiment un travail à temps ... une fois que vous avez tout exécutez une requête pour chaque classe mappée et indexé récupérera tous les résultats ...

var allFoo = NHibernateSession.CreateCriteria(typeof(Foo)).List<Foo>(); 
foreach (var foo in allFoo) 
    NHibernateFullTextSession.Index(foo); 

à la fin vous pouvez exécuter

SearchFactoryImpl sfi = SearchFactoryImpl 
          .GetSearchFactory(new Configuration().Configure()); 
sfi.Optimize(typeof(Foo)); 
Questions connexes