2011-03-23 79 views
1

我目前在我的應用程序中使用NHibernate.Search哪些工作正常,但我現在需要移動到Solr,因爲我需要負載平衡我的應用程序。SolrNet + NHibernate集成

我有基本的設置和工作,但結果arn't現身預期......這是我迄今所做的:在命令提示符下

1)運行Java Solr的服務。 (我可以訪問http://localhost:8983/solr/admin/) 2)初始化Solr與我的Nhibernate Cfg描述在SolrNet wiki 3)我已經添加了一些屬性到我的一個實體(Id,標題,描述) 4)我的schema.xml已經修改爲匹配我的索引字段(編號,標題,說明) 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(); 

當我運行此找到正確的結果,但它不滋潤飽滿的實體,只有已索引的字段...有我錯過了什麼...在這裏做NHiber nate.Search讓這奇蹟般地發生在我身上?

保羅

回答

2

目前,NHibernate.SolrNet集成不從數據庫中獲取查詢時Solr的實體。你可以分叉SolrNet並實現它(這是在查詢Solr之後通過id從數據庫中提取的問題),或者你可以爲SolrNet和NHibernate保留單獨的實體(並從你的項目中移除NHibernate.SolrNet集成),這可能更多工作但應該更加靈活。

+0

我甚至不知道從哪裏開始修改項目......如果你能給我一些指針,那麼就給它一個去吧......它會在NHSolrQueryImpl.cs類的'Execute'函數中嗎? – 2011-03-24 13:29:07

+0

@Paul:對不起,我好像錯過了這個評論!是的,這正是起點。 – 2011-04-03 00:58:05

+0

@Paul:如果SolrNet郵件列表中有任何其他問題:http://groups.google.com/group/solrnet – 2011-04-03 00:58:43