diff --git a/pkg/simple/client/logging/elasticsearch/api_body.go b/pkg/simple/client/logging/elasticsearch/api_body.go index aea26dc72..823d2ca97 100644 --- a/pkg/simple/client/logging/elasticsearch/api_body.go +++ b/pkg/simple/client/logging/elasticsearch/api_body.go @@ -119,14 +119,15 @@ func (bb *bodyBuilder) mainBool(sf logging.SearchFilter) *bodyBuilder { ms = append(ms, Match{Bool: &b}) } - if !sf.Starttime.IsZero() || !sf.Endtime.IsZero() { - fromTo := Match{ - Range: &Range{&Time{ - Gte: &sf.Starttime, - Lte: &sf.Endtime, - }}, - } - ms = append(ms, fromTo) + r := &Range{Time: &Time{}} + if !sf.Starttime.IsZero() { + r.Gte = &sf.Starttime + } + if !sf.Endtime.IsZero() { + r.Lte = &sf.Endtime + } + if r.Lte != nil || r.Gte != nil { + ms = append(ms, Match{Range: r}) } bb.Body.Query = &Query{Bool{Filter: ms}} diff --git a/pkg/simple/client/logging/elasticsearch/api_body_test.go b/pkg/simple/client/logging/elasticsearch/api_body_test.go index 8e13a6ccc..3ab5c777e 100644 --- a/pkg/simple/client/logging/elasticsearch/api_body_test.go +++ b/pkg/simple/client/logging/elasticsearch/api_body_test.go @@ -45,6 +45,12 @@ func TestMainBool(t *testing.T) { }, expected: "api_body_4.json", }, + { + filter: logging.SearchFilter{ + Starttime: time.Unix(1590744676, 0), + }, + expected: "api_body_7.json", + }, } for i, test := range tests { diff --git a/pkg/simple/client/logging/elasticsearch/testdata/api_body_7.json b/pkg/simple/client/logging/elasticsearch/testdata/api_body_7.json new file mode 100644 index 000000000..f5e47e883 --- /dev/null +++ b/pkg/simple/client/logging/elasticsearch/testdata/api_body_7.json @@ -0,0 +1,15 @@ +{ + "query":{ + "bool":{ + "filter":[ + { + "range":{ + "time":{ + "gte":"2020-05-29T17:31:16+08:00" + } + } + } + ] + } + } +} \ No newline at end of file