ElasticSearch REST - 不使用类插入JSON字符串

时间:2015-06-15 20:04:40

标签: elasticsearch elasticsearch-net

我正在寻找一个示例,我们可以在不使用REST API中的类的情况下将示例JSON字符串推送到ElasticSearch。

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

我们将输入作为xml,然后使用NewtonSoft.JSON dll将其转换为JSON字符串。

我知道REST api是强类型的。但是有没有办法在不使用REST api中的类的情况下将JSON字符串插入Elastic?

1 个答案:

答案 0 :(得分:2)

您可以使用low level client传递原始json。

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

<强> 更新

根据documentation,试试这个:

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