Я использую NHibernate.Search
и Lucene.Net
. Я спрошу, если кто-нибудь испытывал подобные проблемы. Это ситуация в отношении следующих трех классов.
[Indexed]
public class File
{
[Field]
public virtual string FileId { get; private set; }
[ContainedIn]
public virtual List<Record> Records { get; private set; }
}
[Indexed]
public class CaseFile : File
{
[Field]
public virtual int CaseYear { get; set; }
[Field]
public virtual int CaseSequenceNumber { get; set; }
}
[Indexed]
public class Record
{
[IndexedEmbedded]
public virtual File ParentFile { get; set; }
}
Проблема в том, что я пытаюсь проиндексировать класс записи. Цель состоит в том, чтобы получить все поля класса File
и подкласса CaseFile
, содержащиеся в индексе Record
. Но когда я индексирую класс Record
, я получаю только поля суперкласса File
в моем индексе записей. Поля подкласса CaseFile
отсутствуют в индексе записи.
Я также пробовал [IndexedEmbedded(TargetElement = typeof(CaseFile))]
в свойстве ParentFile
в классе Record
, но это приводит к совершенно пустым индексам или вообще к отсутствию индексации.
Если я индексирую класс File, ожидаемые свойства подкласса индексируются, как и ожидалось, в индексе File
.
Кто-нибудь сталкивался с подобными проблемами при поиске Hibernate/NHibernate
?