現在、アプリでNHibernate.Searchを使用していますが、これは正常に機能しますが、アプリケーションの負荷を分散する必要があるため、Solrに移動する必要があります。
基本的なセットアップと作業は行っていますが、期待どおりの結果が得られません...これまでに行ったことは次のとおりです。
1)コマンドプロンプトでjavasolrサービスを実行します。(http:// localhost:8983 / solr / admin /にアクセスできます)2)SolrNetwikiで説明されているようにNhibernateCfgでSolrを初期化しました3)エンティティの1つにいくつかの属性(Id、Title、Description)を追加しました4)schema.xmlがインデックス付きフィールド(id、title、description)に一致するように変更されました5)インデックスにいくつかのエンティティを追加しました(管理コンソールで確認できます)6)以下を使用していますいくつかの検索結果を返すコード(wikiによる)
NHibernate.SolrNet.CfgHelper cfgHelper = new CfgHelper();
ICollection<T> entities;
ISessionFactory sessionFactory = Session.SessionFactory;
using (var session = cfgHelper.OpenSession(sessionFactory)) {
entities = session.CreateSolrQuery(term).SetMaxResults(10).List<T>();
}
return entities.ToList();
これを実行すると、正しい結果が見つかりますが、エンティティ全体がハイドレイトされるわけではなく、インデックスが作成されたフィールドのみがハイドレイトされます...ここで何かを見逃したことがあります... NHibernate.Searchはこれを魔法のように起こさせますか?
ポール