elasticsearch,nest,C#,elasticsearch,Nest" /> elasticsearch,nest,C#,elasticsearch,Nest" />

如何通过Elasticsearch Nest query C#获取始终持续2小时的日志?

如何通过Elasticsearch Nest query C#获取始终持续2小时的日志?,c#,elasticsearch,nest,C#,elasticsearch,Nest,我的问题与使用Nest DSL编写查询有关。我想只获取最近2小时的日志。我开发了一个控制台应用程序,并将其注册为windows任务。它将每2小时工作一次,但应始终花费2小时。我的代码如下: var searchResponse=EsClient().Search(sd=>sd .Index(索引名) .Type(TypeName) .Query(q=>q .Match(m=>m.Field(config.GetSection(“Criterias”)[“SearchField”]).Query

我的问题与使用Nest DSL编写查询有关。我想只获取最近2小时的日志。我开发了一个控制台应用程序,并将其注册为windows任务。它将每2小时工作一次,但应始终花费2小时。我的代码如下:

var searchResponse=EsClient().Search(sd=>sd
.Index(索引名)
.Type(TypeName)
.Query(q=>q
.Match(m=>m.Field(config.GetSection(“Criterias”)[“SearchField”]).Query(config.GetSection(“Criterias”)[“SearchValue”]))

)));
您可以使用
bool/filter
查询,以便在时间戳字段中包含另一个
范围
查询:

var searchResponse = EsClient().Search<Source>(sd => sd
                          .Index(IndexName)
                          .Type(TypeName)
                          .Query(q => q
                            .Bool(b => b
                               .Filter(
                                  bf => bf.Match(m => m.Field(config.GetSection("Criterias")["SearchField"]).Query(config.GetSection("Criterias")["SearchValue"])),
                                  bf => bf.DateRange(dr => dr
                                      .OnField("@timestamp")
                                      .GreaterThan(DateMath.Now.Subtract("2h"))
                                  )
                              )
                          )
var searchResponse=EsClient().Search(sd=>sd
.Index(索引名)
.Type(TypeName)
.Query(q=>q
.Bool(b=>b
.过滤器(
bf=>bf.Match(m=>m.Field(config.GetSection(“Criterias”)[“SearchField”]).Query(config.GetSection(“Criterias”)[“SearchValue”]),
bf=>bf.DateRange(dr=>dr
.OnField(“@时间戳”)
.GreaterThan(DateMath.Now.Subtract(“2h”))
)
)
)

您可以使用
bool/filter
查询,以便在时间戳字段中包含另一个
范围
查询:

var searchResponse = EsClient().Search<Source>(sd => sd
                          .Index(IndexName)
                          .Type(TypeName)
                          .Query(q => q
                            .Bool(b => b
                               .Filter(
                                  bf => bf.Match(m => m.Field(config.GetSection("Criterias")["SearchField"]).Query(config.GetSection("Criterias")["SearchValue"])),
                                  bf => bf.DateRange(dr => dr
                                      .OnField("@timestamp")
                                      .GreaterThan(DateMath.Now.Subtract("2h"))
                                  )
                              )
                          )
var searchResponse=EsClient().Search(sd=>sd
.Index(索引名)
.Type(TypeName)
.Query(q=>q
.Bool(b=>b
.过滤器(
bf=>bf.Match(m=>m.Field(config.GetSection(“Criterias”)[“SearchField”]).Query(config.GetSection(“Criterias”)[“SearchValue”]),
bf=>bf.DateRange(dr=>dr
.OnField(“@时间戳”)
.GreaterThan(DateMath.Now.Subtract(“2h”))
)
)
)