【问题标题】:Twin Lucene index directories after Nhibernate.Search upgradeNhibernate.Search 升级后的双 Lucene 索引目录
【发布时间】:2010-01-11 10:59:30
【问题描述】:

我一直忙于将我们的 n* 堆栈升级到更新的版本。我们一直使用 FluentNhibernate 进行配置,使用 Nhibernate.search 与 Lucene.Net 进行全文搜索。一切正常,直到我将库的各种版本更改为以下:

  • FluentNHibernate.dll:1.0.0.593
  • NHibernate.dll:2.1.0.4000
  • NHibernate.Search.dll:2.0.0.1001
  • Lucene.Net.dll:2.3.1.3

堆栈一直像以前一样工作,但我注意到一些奇怪的事情;而在 Lucene 索引目录为每个索引类包含一个子目录之前,它现在使用两个子目录,后缀为一个整数。

我们从

LuceneDirectory
.Class1
.Class2

LuceneDirectory
.Class1.0
.Class1.1
.Class2.0
.Class2.1

我浏览了一下 FluentNhibernate 的配置构建,发现对于每个映射,我创建了两个导入,一个带有映射类的全名,一个没有(如果我映射“用户”类,我将有一个映射,两个导入“POCOAssembly.User”和“User”)。这些目录是在 FullTextIndexEventListener 的 Initialize 调用中创建的。

有没有人偶然发现同样的问题?我通读了 nhibernate.search 发行说明,但没有找到有关映射更改的任何信息;有什么我想念的吗?图书馆是否发生了重大变化?


编辑

我意识到指出我的映射类和我的映射源自用于审计目的的公共基础对象(创建日期/更新时间)可能很重要。

【问题讨论】:

    标签: nhibernate fluent-nhibernate lucene.net nhibernate.search


    【解决方案1】:

    我发现问题已经在NHibernate JIRA中报告了:https://nhibernate.jira.com/browse/NHSR-22

    发生的事情是我在 NHibernate 配置中设置了两个默认属性; “hibernate.search.default.directory_provider”和“hibernate.search.default.indexBase” 这些默认配置被视为两个分片,因为代码暂时没有经过测试。

    一种解决方法是删除“hibernate.search.default.directory_provider”条目,因为它默认为正确的条目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      相关资源
      最近更新 更多