3

我使用流利NHibernate,我想用Lucene實現NHibernate.Search,但我找不到任何關於如何用Fluent NHibernate來做到這一點的例子。看起來有兩個步驟。 (根據CastleFluent NHibernate + Lucene搜索(NHibernate.Search)

  1. 設置在配置Hibernate的屬性:

    • hibernate.search.default.directory_provider
    • hibernate.search.default.indexBase
    • hibernate.search。分析儀
  2. 將事件監聽器初始化爲ind ex persisted objcts

    • configuration.SetListener(ListenerType.PostUpdate,new FullTextIndexEventListener());
    • configuration.SetListener(ListenerType.PostInsert,new FullTextIndexEventListener());
    • configuration.SetListener(ListenerType.PostDelete,new FullTextIndexEventListener());

我想出如何將屬性添加到該功能NHibernate源配置,但我找不到在哪裏的事件偵聽器設置。

回答

5

如果您使用的是Fluent Configuration API,那麼您只需要使用ExposeConfiguration方法來獲取NHibernate配置實例。

Fluently.Configure() 
    .Database(...) 
    .Mappings(...) 
    .ExposeConfiguration(cfg => 
    { 
    cfg.SetListener(...); 
    cfg.SetListener(...); 
    }) 
    .BuildSessionFactory(); 
+0

這是正確的,但當我嘗試這樣做時,我遇到了使用兩個不同版本的NHibernate的Fluent NHibernate和NHibernate.Search程序集的其他問題。所以,這是正確的 - 但它實際上不起作用。然而。 :) – 2009-02-21 17:22:47

+1

@ rmontgomery429這是OSS的解決方案,你應該從中繼結賬並自行構建。 – Samnang 2009-06-02 02:40:50

1

我工作的一個Fluent API for Lucene它不需要的屬性,並與FNH

很好地集成

它還是很前期的α,捐款的歡迎!