Свободный поиск NHibernate + Lucene (NHibernate.Search)

Я использую Fluent NHibernate, и я хотел бы реализовать NHibernate.Search с Lucene, но я не могу найти никаких примеров того, как это сделать с Fluent NHibernate. Похоже, есть два шага. (Согласно Castle)

  1. Установите свойства Hibernate в конфигурации:

    • hibernate.search.default.directory_provider
    • hibernate.search.default.indexBase
    • hibernate.search.analyzer
  2. Инициализация прослушивателей событий для индексации сохраненных объектов

    • configuration.SetListener(ListenerType.PostUpdate, new FullTextIndexEventListener());
    • configuration.SetListener (ListenerType.PostInsert, новый FullTextIndexEventListener ());
    • configuration.SetListener (ListenerType.PostDelete, новый FullTextIndexEventListener ());

Я понял, как добавить свойства в конфигурацию источника Fluent NHibernate, но не могу найти, где настроены прослушиватели событий.


person Ryan Montgomery    schedule 15.02.2009    source источник


Ответы (2)


Если вы используете Fluent Configuration API, то вам просто нужно использовать метод ExposeConfiguration для получить в экземпляре конфигурации NHibernate.

Fluently.Configure()
  .Database(...)
  .Mappings(...)
  .ExposeConfiguration(cfg =>
  {
    cfg.SetListener(...);
    cfg.SetListener(...);
  })
  .BuildSessionFactory();
person James Gregory    schedule 16.02.2009
comment
Это правильно, но когда я попробовал это, я столкнулся с другими проблемами со сборками Fluent NHibernate и NHibernate.Search, использующими две разные версии NHibernate. Итак, это правильно, но на самом деле это не работает. Пока что. :) - person Ryan Montgomery; 21.02.2009
comment
@ rmontgomery429 Это решение для OSS, вы должны оформить заказ из ствола и собрать его самостоятельно. - person Samnang; 02.06.2009

Я работаю над Fluent API для Lucene, который устраняет необходимость в атрибутах и ​​интегрированном хорошо с FNH

Это все еще пре-альфа, вклады приветствуются!

person Andrew Bullock    schedule 14.05.2010