2011-03-23 3 views
1

현재 NHibernate.Search를 잘 사용하는 내 응용 프로그램에서 NHibernate.Search를 사용하지만 응용 프로그램의로드 균형을 조정해야하므로 Solr로 이동해야합니다.SolrNet + NHibernate 통합

내가 기본 설정 및 작동을 가지고 있지만 예상대로 결과가 나오는 arn't ... 여기에 지금까지 무엇을했는지 있습니다 : 명령 프롬프트에서

1) 실행 자바 SOLR 서비스를 제공합니다. (http://localhost:8983/solr/admin/) 2) SolrNet 위키에 설명 된대로 Nhibernate Cfg로 초기화 된 솔루 3) 내 엔티티 중 일부 (Id, Title, Description)에 일부 속성을 추가했습니다. 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 이걸 마술처럼 만들어 내게 찾아 줘? 폴

답변

2

는 현재 NHibernate.SolrNet 통합 SOLR 쿼리 데이터베이스에서 엔티티를 가져 오지 않습니다. 당신은 SolrNet을 fork하고 이것을 구현할 수있다. (Solr을 쿼리 한 후에 id에 의해 데이터베이스로부터 가져 오는 문제이다.) 또는 SolrNet과 NHibernate에 대한 별도의 엔티티를 유지할 수있다. (프로젝트에서 NHibernate.SolrNet 통합을 제거한다. 훨씬 더 유연해야합니다.

+0

메신저 프로젝트를 수정하기 위해 어디서 시작해야할지 모르겠다. 내게 포인터를 줄 수만 있다면 ... NHSolrQueryImpl.cs 클래스의 'Execute'함수가 될 것인가? –

+0

@Paul : 죄송합니다. 나는이 의견을 놓친 것 같습니다! 예, 정확히 출발점입니다. –

+0

@Paul : SolrNet 메일 링리스트에서 다른 질문이있는 경우 http://groups.google.com/group/solrnet –

관련 문제