C#ElasticClient v6.0.2 LowLevel.IndexAsync创建空文档

时间:2018-03-27 20:05:36

标签: elasticsearch

以下是我的代码的一部分,我是从here获取的。我不得不做一些改动来使用Elasticsearch的新v6.X。

它运行时没有任何错误,并创建新文档但是空字段值。如果我使用Postman在Elasticsearch中使用相同的JSON有效负载和PUT,则文档将被编入索引,并填充所有字段。如果我使用正确的Elasticsearch API方法并正确使用它们,请告诉我。

string strJsonMessage = @"
{ 
    message : {
        content: 'Test Message Content'
    }
}";

ConnectionSettings connectionSettings = new ConnectionSettings(new Uri("xxx")).BasicAuthentication("xx", "xx");
ElasticClient client = new ElasticClient(connectionSettings);

JObject msg = JObject.Parse(strJsonMessage);
var result = await client.LowLevel.IndexAsync<BytesResponse>("events-2018.03.27", "event", PostData.Serializable(msg));

if (result.Success)
{
    log.Info("Data successfully sent.");
    log.Verbose(result.Body);
}
else
{
    log.Error("Failed to send data.");
}

****OUTPUT TRACE:****

2018-03-27T18:37:18.961 [Info] Data successfully sent.
2018-03-27T18:37:18.961 [Verbose] {"_index":"events-2018.03.27","_type":"event","_id":"u9HPaGIBBm3ZG7GB5jM_","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":29,"_primary_term":1}

通过ID查询此文档的弹性搜索给我:

{
    "_index": "events-2018.03.27",
    "_type": "event",
    "_id": "u9HPaGIBBm3ZG7GB5jM_",
    "_version": 1,
    "found": true,
    "_source": {
        "message": {
            "content": []
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如果有人遇到同样的问题,我会得到解决方案here