如何在.net客户端实现ElasticSearch中时间戳属性Map

afdcj2ne  于 2023-03-17  发布在  ElasticSearch
关注(0)|答案(1)|浏览(104)

我有一个非常简单的POCO类,这是elasticsearch .NET客户端(v8.0,所以这不是使用的NEST客户端,这是不赞成)所需的。
为了测试,我使用了一个非常简单的对象

public class HardwareData
         {            
             public DateTime timestamp { get; set; }
             public int System_ErrorLevel { get; set; }
         }

我设置我的连接对象,然后我想做一些像:
客户端。ElasticSearch客户端设置。属性Map。添加(“时间戳”,"@时间戳”)
但这是不可能的,有一个PropertyMappings属性,但它没有做我所期望的(即Map时间戳到所需的@时间戳字段)
我可以通过使用摄取管道来实现这个结果,但应该有一个直接的方法来做到这一点。我在互联网上找到的所有示例都使用NEST API,而不是最新版本中可用的ElasticsearchClient对象。
如果我不Map时间戳,那么当我调用:

await client.IndexAsync(new IndexRequest<HardwareData>()
              {
                 Document = data
              });

其中data是HardwareData类型。错误是未设置@timestamp。

kx5bkwkv

kx5bkwkv1#

您能试试这个吗?

public class HardwareData
{
    [JsonProperty(PropertyName = "@timestamp")]
    public DateTime Timestamp { get; set; }
    public int System_ErrorLevel { get; set; }
}

相关问题