2017-02-05 6 views
0

私は巣を通じて私が直接生elasticsearch要求を与えたいと思うことで渡すことで、インデックスマッピングを行うしたいと思います:マッピングを行うためのダイレクトelasticsearch要求を与えることができる場合nest:生のリクエストを渡すことによってインデックスをどのようにマッピングするのですか?

var setting = new ConnectionSettings(new Uri("uri")); 
setting.DefaultIndex(_esIndexName); 
var client = new ElasticClient(setting); 

string rawEsRequest= "PUT /myindex 
{ 
    ""mappings"": { 
     ""review"": { 
     ""properties"": { 
      ""commentaire"": { 
      ""analyzer"" : ""french"", 
      ""type"": ""text"", 
      ""fields"": { 
       ""keyword"": { 
       ""type"": ""keyword"", 
       ""ignore_above"": 256 
       } 
      } 
      }, 
      ""date_creaation"": { 
      ""type": "date"" 
      } 
}}}}" 

//want to do this bellow 
client.Mapping.rawPut(rawEsRequest); 

あなたは知っていますか?

答えて

3

はい、低レベルのクライアントはElasticsearch.Netであり、NESTの上位クライアントでも.LowLevelプロパティで公開されています。クライアント上のメソッド呼び出しの一部であるため、HTTP動詞とURIを削除するだけで済みます。

var pool = new SingleNodeConnectionPool(new Uri("http://localhost:9200")); 
var defaultIndex = "myindex; 
var connectionSettings = new ConnectionSettings(pool) 
     .DefaultIndex(defaultIndex); 

var client = new ElasticClient(connectionSettings); 

string rawEsRequest = @"{ 
    ""mappings"": { 
     ""review"": { 
      ""properties"": { 
       ""commentaire"": { 
        ""analyzer"" : ""french"", 
     ""type"": ""text"", 
     ""fields"": { 
         ""keyword"": { 
          ""type"": ""keyword"", 
      ""ignore_above"": 256 
         } 
        } 
       }, 
       ""date_creaation"": { 
          ""type"": ""date"" 
       } 
      } 
     } 
    } 
}"; 

ElasticsearchResponse<dynamic> putResponse = 
    client.LowLevel.IndicesCreate<dynamic>(defaultIndex, rawEsRequest); 
関連する問題