从c#程序查询数据结果不等于来自kibana的数据筛选器

sigwle7e  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(0)|浏览(254)

我是c#的新手,我想写一个程序来查询elasticsearch的数据。首先,我加载kibana示例日志并希望从我的c#程序中进行查询,下面是我的c#程序。我想过滤clientip是20.102.50.96日志。

class Program
    {
        static void Main(string[] args)
        {
            var settings = new ConnectionSettings(new Uri("http://127.0.0.1:9200"))
            .DefaultIndex("kibana_sample_data_logs");
            var client = new ElasticClient(settings);

            var searchResponse = client.Search<SampleLog>(s => s
            .From(0)
            .Size(10)
            .Query(q => q
                 .Match(m => m
                    .Field(f => f.clientip)
                    .Query("20.102.50.96")
                  )
                )
            );
            var logs = searchResponse.Documents;
            foreach(SampleLog p in logs)
            {
                Console.WriteLine(p.bytes);
                Console.WriteLine(p.url);
                Console.WriteLine(p.clientip);
                Console.WriteLine(p.message);

            }
            Console.WriteLine(logs.Count);
        }
    }

我很困惑,如果我的日志有40个字段,我是否需要像下面这样初始化40个var?是否影响结果数据?

public class SampleLog
    {
        public string extension { get; set; }
        public string clientip { get; set; }
        public string message { get; set; }
        public string url { get; set; }
        public int bytes { get; set; }
    }

当我运行代码时,结果有10个日志:

但是,我在kibana找不到那么多日志,只有两个日志:

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题