SolrNet client를 이용해 solr를 쿼리하는데, solrj에 비해 너무 복잡하고 난해하다.. ㅠㅠ

쿼리하면서 처음에는 정상적으로 쿼리결과를 받았으나, 다음부터는 다음과 같은 에러를 발생했다.


SolrConnection' already registered in container


Startup.Init<Dictionary<string, object>>(string.Format("{0}:{1}/{2}/{3}", server, port, was, collectionName));


SolrConnection은 한번만 수행되어야 된다는거 같은데, 다음 Startup.Init 부분이 여러번 수행되면 에러를 뱉더라..


Asp.net 또는 IIS에서 호스팅되는 어플리케이션은 Global.aspx에 Application_Start 영역에서 초기화 해주니, 

문제없이 동작되었다.


그런데, 왜 한번만 수행되어야 되는지는 의문... ㅠㅠ


IIS호스팅 어플리케이션 외 일반 콘솔 또는 윈폼 어플리케이션은 다음과 같이 처리하면 될것이다.


static void Main(string[] args)
{
     Startup.Init<Resource>("http://localhost:8080/solr/");

     //Call method or do work to query from solr here... 
     //Using your code in a method...
     QuerySolr();
}

private static void QuerySolr()
{
     var solr = ServiceLocator.Current.GetInstance<ISolrOperations<Resource>>();

     // Do the search
     var results = solr.Query(new SolrQuery("title:test"));
}


출처) 

http://stackoverflow.com/questions/3801674/solr-connection-already-registered-in-container

http://stackoverflow.com/questions/9397893/using-solrnet-to-query-solr-from-a-console-application