2017-12-11 12 views
0

SOLR 버전 :SOLR - C# 코드로

내가 호출하거나 데이터 가져 오기 핸들러를 트리거 할 C#을 기반 응용 프로그램과 6.6.1

SolrNet API를 SolrNet의 API에서 다이 하이드로을 유발하는 방법 으로 C# 코드에서 SolrNet의 도움을받습니다. 그러나 SolrNet API에서 자습서를 찾을 수 없습니다. 나는 solr admin UI에서 DIH를 쉽게 호출 할 수 있지만 필요는 외부 응용 프로그램에서 호출하는 것입니다.

응용 프로그램에서 C# 기반 데이터 가져 오기 작업을 호출하는 방법을 알려주십시오.

답변

0

나는 Solr.NET에서 완전히 할 수 있다고 생각지 않는다. 간단한 생각으로 나에게 DIH 상태 페이지 책임이있는 클래스가 있으며, 초기 프로세스를 다루지는 않는다. 나는이 기능이 필요하지 않았기 때문에 이것이 최근에 버려 졌다고 생각한다. SolrBasicServer 클래스에서

당신이 다음 다이 하이드로을 받고있다

public SolrDIHStatus GetDIHStatus(KeyValuePair<string, string> options) { 
      var response = connection.Get("/dataimport", null); 
      var dihstatus = XDocument.Parse(response); 
      return dihStatusParser.Parse(dihstatus); 
     } 

. 대부분의 경우,이 클래스를 확장하고 비슷한 일을 할 필요가 (내가 C#을 개발자가 아닌, 그래서 코드에 대한 확실하지 않은 100 %) :

connection.Post("/dataimport?command=full-import", null); 

이상 상태를 얻을 다음 delta-import 명령과 유사한 뭔가 부품.

Solr.NET를 업데이트하는 당신을위한 경우가 아니라면

, 당신은 여전히 ​​내가 사용해야 할 것이라고 생각 http://host:port/solr/collection-name/dataimport?command=full-import

+0

에 게시 요청을 일부 바람직 C#을 라이브러리 보통 HTTP 호출을 통해 트리거와 할 수 C# HttpClient 클래스는 Solr Rest API를 호출하고 동작을 트리거합니다. – Karan

+0

HttpClient를 말하면 Solr과 관련된 클라이언트가 아닌 일부 클라이언트를 의미하는 것입니까? – Mysterion

+0

올바른. http 기반 주소는 C# HttpClient 클래스를 사용하여 호출 할 수 있습니다. – Karan

0
string solrTargetDIHUrl = "http://localhost:8983/solr/dih/dataimport?command=delta-import"; 

     try 
     {     
      using (var solrClient = new HttpClient()) 
      { 
       var resultObj = solrClient.GetAsync(new Uri(solrTargetDIHUrl)).Result; 
       Console.ForegroundColor = ConsoleColor.Green; 
       Console.WriteLine("\t\t Data Import Triggered Successfully !"); 
       Console.ResetColor(); 

      } 
     } 
     catch(Exception ex) 
     { 
      Console.WriteLine("ERROR in DIH Trigger >>>>> " + ex.Message + "||" + ex.StackTrace); 
     }