ElasticSearch REST - вставить строку JSON без использования класса

Я ищу пример, где мы можем нажать ниже образец строки JSON в ElasticSearch без использования классов в REST API.

{
   "UserID":1,
   "Username": "Test",
   "EmailID": "Test@TestElastic.com"
}

Мы получаем ввод в виде xml и преобразуем его в строку JSON, используя NewtonSoft.JSON dll.

Я знаю, что REST API строго типизирован. Но есть ли способ вставить строку JSON в Elastic без использования классов в REST API?

1 ответ

Решение

Вы можете использовать низкоуровневый клиент для передачи необработанного JSON.

var elasticsearchClient = new Elasticsearch.Net.ElasticsearchClient(settings);
var elasticsearchResponse = elasticsearchClient.Index("index", "type", "{\"UserID\":1,\"Username\": \"Test\",\"EmailID\": \"Test@TestElastic.com\"}");

ОБНОВИТЬ

Основываясь на документации, попробуйте это:

var sb = new StringBuilder();

sb.AppendLine("{ \"index\":  { \"_index\": \"indexname\", \"_type\": \"type\" }}");
sb.AppendLine("{ \"UserID\":1, \"Username\": \"Test\", \"EmailID\": \"Test@TestElastic.com\" }");

sb.AppendLine("{ \"index\":  { \"_index\": \"indexname\", \"_type\": \"type\" }}");
sb.AppendLine("{ \"UserID\":2, \"Username\": \"Test\", \"EmailID\": \"Test@TestElastic.com\" }");

var response = elasticsearchClient.Bulk(sb.ToString());
Другие вопросы по тегам