我正在尝试查询elasticsearch中保存的metricbeat数据,并且正在寻找两个字段:host
和system.cpu.total.pct
。两者都包含在我的类(class)中:
public string Host { get; set; }
[Number(NumberType.ScaledFloat, Name = "system.cpu.total.pct")]
public float Cpu_pct { get; set; }
这是我的查询:
var searchResponse = client.Search<System>(s => s
.Query(q => q
.Bool(b => b
.Filter(bf => bf
.Range(r => r
.Field(f => f.Cpu_pct)
.GreaterThan(0)
)
)
)
)
);
索引中包含文档的数据,其
system.cpu.total.pct
高于0
,但是当我打印出响应文档时,Cpu_pct
仅输出0
,而host
提供正确的主机名。为什么我不能返回
system.cpu.total.pct
中的值?
最佳答案
更新System
类型以匹配JSON源中内部对象的层次结构
public class System
{
public Cpu Cpu { get; set; }
}
public class Cpu
{
public Total Total { get; set; }
}
public class Total
{
public float Pct { get; set; }
}
现在,在反序列化之后,将为
Source.Cpu.Total.Pct
属性设置值。
关于elasticsearch - NEST查询未返回Elasticsearch中保存的Metricbeat字段的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49428242/