我目前在我的应用程序中使用NHibernate.Search,它工作得很好,但是我现在需要迁移到Solr,因为我需要对我的应用程序进行负载平衡。
我已经完成了基本的设置和工作,但到目前为止,我所做的并不是expected...here的结果:
1)在命令提示符下运行java solr服务。(我可以访问http://localhost:8983/solr/admin/) 2)使用SolrNet维基中描述的Nhibernate Cfg初始化Solr 3)我已经向我的一个实体(Id,标题,描述)添加了一些属性4)我的schema.xml已经被修改,以匹配我的索引字段(id,标题,描述) 5)我已经向索引中添加了几个实体(我可以在管理控制台中看到它们) 6)我正在使用以下代码返回一些搜索结果(根据维基)
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();当我运行它时,它会找到正确的结果,但是它不会水合整个实体,只有字段I indexed...have here...did NHibernate.Search才能神奇地为我实现这一点?
保罗
发布于 2011-03-24 00:54:09
目前,NHibernate.SolrNet集成在查询Solr时不会从数据库中获取实体。您可以派生SolrNet并实现它(这是在查询Solr之后通过id从数据库获取),或者您可以为SolrNet和NHibernate保留单独的实体(并从您的项目中删除NHibernate.SolrNet集成),这可能会有更多的工作,但应该更加灵活。
https://stackoverflow.com/questions/5408441
复制相似问题