1

Я был занят обновлением нашего n * stack до более новой версии. Мы использовали FluentNhibernate для настройки и Nhibernate.search в сочетании с Lucene.Net для полнотекстового поиска. Все работало хорошо, пока я не изменил различные версии библиотек к следующему:Каталоги индексов Twin Lucene после Nhibernate.Поиск обновления

  • 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 и выяснили, что для каждого отображения, я создал два импорта, один с FULLNAME из класса, который был отображен, один без (если я наберу класс «Пользователь», у меня будет одно сопоставление и два импорта «POCOAssembly.User» и «Пользователь»). Каталоги создаются при вызове Initialize для FullTextIndexEventListener.

Неужели кто-то наткнулся на ту же проблему? я прочитал заметки о выпуске nhibernate.search, но не нашел никакой информации об изменении сопоставлений; есть что-то, чего я не хватает? Были ли изменения в библиотеках?


Edit:

я понял, что это может быть важно указать на то, что мои отображенные классы и мои отображения вытекают из общего базового объекта, используемый для целей аудита (время создания даты/обновления).

ответ

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», поскольку она по умолчанию соответствует правильной.