gpt4 book ai didi

elasticsearch - 如何使用 NEST 在 Logstash 中为 Elasticsearch 构造过滤器?

转载 作者:行者123 更新时间:2023-11-29 02:57:14 24 4
gpt4 key购买 nike

我有一个 logstash/elasticsearch/kibana 系统设置,结构化的 json 类型日志正在进入 Elasticsearch (不是来自 C# 应用程序)并且在 kibana 中可见。

我正在使用 NEST,因为我想从 logstash 中切分数据。

以下代码正在生成我可以在调试器中检查的“命中”结果。

ElasticClient client = new ElasticClient(settings);


var searchResults = client.Search( s => s
.From(0)
.Size(100)
.AllIndices()

.SortDescending("@timestamp")
);

但是,如果我尝试扩大搜索范围以包括我认为存在于日志中的内容(在 Kibana 中可见),我现在会得到结果。

 var searchResults = client.Search( s  => s
.From(0)
.Size(100)
.AllIndices()
.Query(q => q
.Term("MySpecialFieldName", "ValueThatAppears")
)
.SortDescending("@timestamp")
);

我还想利用示例中显示的类型安全和其他机制。我不确定这是否相关。

( 我正在努力单独解决这个问题:在搜索中添加一个像“client.Search(”这样的类似乎也会阻止结果,我假设关于这个类的某些东西与数据不一致,因此无法反序列化或以其他方式过滤...)

最佳答案

找到正确的设置来完成这项工作:

当它被 Elasticsearch 索引时,logstash 系统将其放入一个类型(我认为是日志或日志)。该术语还需要以“.raw”为后缀。所以工作示例最终是:

 var searchResults = client.Search<MyClass>( s  => s
.From(0)
.Size(100)
.AllIndices()
.AllTypes()
.Query(q => q
.Term("MySpecialFieldName.raw", "ValueThatAppears")
)
.SortDescending("@timestamp")
);

关于elasticsearch - 如何使用 NEST 在 Logstash 中为 Elasticsearch 构造过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22803027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com