複数のエンティティを 1 つの NHibernate Search インデックスに格納して、それらすべてを一度にクエリできることを期待しています。ユースケースは、混合結果を返す単純な検索ページです。たとえば、コードは次のようになります。
public interface ISearchable {}
[Indexed(Index = "TheIndex")]
public class SearchableEntityA : ISearchable
{
// Some [Field]s
}
[Indexed(Index = "TheIndex")]
public class SearchableEntityB : ISearchable
{
// Some other [Field]s
}
これはすべてインデックスに問題なく、もちろん生の NHibernate で次のようにクエリ可能です。
session.CreateCriteria<ISearchable>().List<ISearchable>();
ISearchable にいくつかのフィールドがありますが、これらは NHibernate マッピングで特に参照されていません。
私の希望は、私がただ言うことができるということでした:
var query = "some keyword";
fullTextSession.CreateFullTextQuery<ISearchable>(query).List<ISearchable>();
そして、さまざまなエンティティからの結果を含む ISearchables のリストを取得します。しかし、現実にはNHibernate.HibernateException: Not a mapped entity: NetComposites.Model.ISearchable
.
では、NHibernate Search を使用してポリモーフィック クエリに似たものを実現する最も簡単な方法は何でしょうか?