Nhibernate поиск с Lucene.Net, исторические данные - PullRequest
0 голосов
/ 11 марта 2011

Когда я искал решение для полнотекстового индекса SQL в Nhinbernate, я наткнулся на решение Lucene.Net и нашел отличную статью на http://www.d80.co.uk/post/2011/03/04/Nhibernate-Search-Tutorial-with-LuceneNet-and-NHibernate-30.aspx.

Теперь у меня есть еще один вопрос, у меня есть одинсуществующее приложение, и я перевожу его для использования Nhibernate.Чтобы функция поиска работала правильно, я предполагаю, что сначала нужно предварительно загрузить все существующие данные в индекс Lucene.

Поскольку Nhibernate.search является оболочкой Lucene.Net, я думаю, что он должен иметь свой собственный документ /полевая конвенция.Итак, у кого-нибудь есть лучшие практики или примеры кода, как мне предварительно загрузить данные из базы данных в индекс Lucene?

Спасибо, Харди

1 Ответ

1 голос
/ 11 марта 2011

ну, это действительно разовая работа ... как только вы настроите все, запустите запрос для каждого сопоставленного и проиндексированного класса, который будет извлекать все результаты ...

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

inконец вы можете запустить

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