NHibernate.Search Index Rebuild (восстановление индекса поиска)

Как я могу восстановить индекс Lucene.NET с помощью NHibernate.Search?

Спасибо.


person Yoann. B    schedule 21.01.2010    source источник


Ответы (2)


В IFullTextSearchSession есть метод Index, который принудительно индексирует объект. Итак, вам просто нужно получить все объекты, а затем вызвать для них index.

person Andrew Smith    schedule 22.01.2010

Вот пример:

    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();
                }

            }
        }
person Shailen Sukul    schedule 28.06.2012
comment
Я бы просто создал индекс в отдельном месте, а затем удалил бы и скопировал существующие индексы, чтобы минимизировать время простоя. - person Shailen Sukul; 22.10.2014
comment
Я обнаружил, что search.PurgeAll(type) мне тоже подходит :-) - person Bertvan; 22.10.2014