2011-03-11 64 views
0

当我在Nhinbernate搜索SQL全文索引解决方案时,我遇到了Lucene.Net解决方案,并且我发现并在http://www.d80.co.uk/post/2011/03/04/Nhibernate-Search-Tutorial-with-LuceneNet-and-NHibernate-30.aspx上发现了优秀的文章。nhibernate搜索Lucene.Net,历史数据

现在我有另一个问题,我有一个现有的应用程序,我正在迁移它使用Nhibernate。为了使搜索功能正常工作,我假设需要首先将所有现有数据预先加载到Lucene索引中。

由于Nhibernate.search是一个围绕Lucene.Net的包装,我认为它必须有它自己的文档/字段约定。因此,任何人都有一些最佳实践或代码示例,我应该如何将数据库中的数据预加载到Lucene索引中?

感谢 哈迪

回答

1

嗯,这是一个一次性的工作真的......一旦你设置的一切运行每个映射和索引类的查询将获取所有的结果...

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

可以运行

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