2017-12-11 5 views
0

のSolrバージョン::のSolr - C#のコードで

は私が起動するか、データインポートハンドラをトリガしたいのC#ベースのアプリケーションと6.6.1

SolrNet APIをSolrNet APIからDIHをトリガーする方法のC#コードからSolrNetの助けを借りてください。しかし、私はSolrNet APIでチュートリアルを見つけることができません。私はsolr admin UIからDIHを簡単に呼び出すことができますが、私の必要性は外部アプリケーションから呼び出すことです。

C#ベースの アプリケーションからデータインポートアクションを呼び出す方法をコードスニペットに提案してください。

答えて

0

私はSolr.NETから完全にすることはできないと考えています。現在、DIHステータスページの担当クラスはありますが、最初のプロセスはカバーしていません。この機能は必要ないので、これは最近捨てられたと思います。 DIHを取得している

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はあなたのためのケースではありません更新、あなたはまだほんの一部の好適なC#のライブラリと通常のHTTP呼び出しを経由して、それをトリガーとhttp://host:port/solr/collection-name/dataimport?command=full-import

+0

にPOSTリクエストを行うことができれば、私は私が使用しなければならないと思います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); 
     }