2017-02-05 7 views
0

Я хотел бы сделать отображение индекса, проходя через гнездо но я хочу дать непосредственно запрос сырой elasticsearch:гнездо: как преобразование индекса путем передачи необработанного запроса?

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); 

Знаете ли вы, если это возможно, чтобы дать запрос прямой elasticsearch для делать отображение?

ответ

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);