【问题标题】:NHibernate.Search, Lucene index files not createdNHibernate.Search,未创建 Lucene 索引文件
【发布时间】:2009-01-20 16:49:00
【问题描述】:

我遇到了 NHibernate.Search 的问题,它突然停止工作,无法创建文件也无法读取索引文件。

NHibernate 似乎可以正确加载它:

2009-01-20 17:37:17,751 [1] 调试 NHibernate.Impl.SessionFactoryImpl - 使用属性实例化会话工厂:{use_reflection_optimizer=True, hibernate.search.analyzer=Lucene.Net.Analysis.SimpleAnalyzer, Lucene.Net, hibernate.search.default.directory_provider=NHibernate.Search.Store.FSDirectoryProvider, NHibernate.Search, dialect=NHibernate.Dialect.PostgreSQL82Dialect, connection.driver_class=NHibernate.Driver.NpgsqlDriver, hibernate.search.default.indexBase.create=true, hibernate.search.default.indexBase=c:\temp\Lucene, connection.provider=NHibernate.Connection.DriverConnectionProvider, connection.connection_string_name=开发者}

但在那之后,似乎没有任何效果。没有文件被创建,并且 c:\temp\Lucene 也从未被创建。我检查了权限,似乎没有发现任何问题。

这已成为我的死胡同,我不知道如何进行调试。非常感谢任何反馈。

好的,更新:

我发现 FullTextIndexEventListener.Initialize(NHibernate.Cfg.Configuration cfg) 永远不会被调用。

我假设当将监听器添加到 NHibernate 配置时会触发它(因为它实现了 NHibernate.Event.IInitializable),但是在检查 NHibernate 的源时,情况似乎并非如此?

奇怪的是,它可以在我的同事开发机器上运行,而无需手动调用。我们运行相同的源代码以及相同的库。

【问题讨论】:

    标签: nhibernate lucene.net castle-activerecord nhibernate.search


    【解决方案1】:

    好吧,发现不知何故,我的机器一直在加速 ActiveRecord 和 NHibernate 之间的初始化阶段,这意味着自从我将 EventListeners 注册到 NHibernate On_ApplicationStart() 后,NHibernate 已经初始化,因此永远不会调用 Initialize()听者。

    在我同事的电脑上,NHibernate 在注册事件监听器时还没有初始化,因此调用了 Initialize。

    这是 ActiveRecord 设计中的一个缺陷,因为我需要先初始化 AR,然后才能将某些内容注册到 NHibernate。有点像第 22 个问题。

    希望有人会发现此信息有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多