elasticsearch - 无法让 Nest.PropertyName 考虑嵌套
问题描述
我有一种弹性条目,它由一些重叠的属性组成,比如
{
"_source":
{
"pipeline_version":1.7,
"agent":{
"hostname":"SFPWEW11616",
"id":"a1df2f4e-6dde-43fd-8af6-b3726124fdf7",
"type":"winlogbeat",
"ephemeral_id":"78be9770-dab9-4c56-a67e-b1a372a2f899",
"version":"7.5.1"
}
}, [...]
}
我试图让我的 POCO 代表这个对象的扁平视图。根据我在文档中找到的内容,我尝试做类似的事情
Friend Class ElasticEventLogEntry
<Nest.PropertyName("agent.hostname")>
Public Property AgentHostName As String
[...]
End Class
但无论我尝试什么,该值始终为空。我看过其他一些使用 NestedAttribute 属性的帖子,但据我所知,这仅在我们想在我们的 POCO 结构中创建嵌套对象时才有用,这不是我的情况。我错过了什么?
解决方案
做你想做的事情是不可能的,至少在没有为你的ElasticEventLogEntry
类型编写自己的 JSON 序列化并连接到JsonNetSerializer
.
更好的方法是进行ElasticEventLogEntry
不同的建模
Public Class ElasticEventLogEntry
<DataMember(Name:="pipeline_version")>
Public Property PipelineVersion As String
Public Property Agent As Agent
End Class
Public Class Agent
Public Property Hostname As String
Public Property Id As String
Public Property Type As String
<DataMember(Name:="ephemeral_id")>
Public Property EphemeralId As String
Public Property Version As String
End Class
然后代理主机名将被反序列化为.Agent.Hostname
推荐阅读
- r - 更改多列的类
- sql - 如何将 ransacker 查询连接到 ransack 排序搜索参数
- python - 使用 eBPF 在 Python 堆栈级别跟踪代码是否可行?
- java - 多个消费者 Spring Kafka
- oracle - DBMS_OUTPUT.PUT_LINE 不在函数内部打印
- r - 根据重复序列重命名R中的列
- kubernetes - Docker for Windows 中 Kubernetes 的网络解决方案是什么?
- javascript - 防止点击标识符时出现多次延迟
- python - 调用 thread.join() 会阻塞异步上下文中的事件循环吗?
- kubernetes - Kubeadm alpha 阶段证书导致加入命令令牌无效