From 2098ac3033f2a0ec5e4e3df533f3779166af4a95 Mon Sep 17 00:00:00 2001 From: Damien de Lemeny Date: Tue, 6 Feb 2024 14:51:01 -0500 Subject: [PATCH] Use AND as default operator, fixes #54 --- pkg/quickwit/client/models.go | 4 +++- pkg/quickwit/client/search_request.go | 3 ++- pkg/quickwit/client/search_request_test.go | 2 +- pkg/quickwit/data_query.go | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pkg/quickwit/client/models.go b/pkg/quickwit/client/models.go index e4769e1..b7e069e 100644 --- a/pkg/quickwit/client/models.go +++ b/pkg/quickwit/client/models.go @@ -102,6 +102,7 @@ type QueryStringFilter struct { Filter Query string AnalyzeWildcard bool + DefaultOperator string } // MarshalJSON returns the JSON encoding of the query string filter. @@ -109,7 +110,8 @@ func (f *QueryStringFilter) MarshalJSON() ([]byte, error) { // FIXME: readd analyze_wildcard when quickwit supports it. root := map[string]interface{}{ "query_string": map[string]interface{}{ - "query": f.Query, + "query": f.Query, + "default_operator": f.DefaultOperator, // "analyze_wildcard": f.AnalyzeWildcard, }, } diff --git a/pkg/quickwit/client/search_request.go b/pkg/quickwit/client/search_request.go index 41b83dc..19e3328 100644 --- a/pkg/quickwit/client/search_request.go +++ b/pkg/quickwit/client/search_request.go @@ -257,7 +257,7 @@ func (b *FilterQueryBuilder) AddDateRangeFilter(timeField string, lteMillisecs i } // AddQueryStringFilter adds a new query string filter -func (b *FilterQueryBuilder) AddQueryStringFilter(querystring string, analyseWildcard bool) *FilterQueryBuilder { +func (b *FilterQueryBuilder) AddQueryStringFilter(querystring string, analyseWildcard bool, defaultOperator string) *FilterQueryBuilder { if len(strings.TrimSpace(querystring)) == 0 { return b } @@ -265,6 +265,7 @@ func (b *FilterQueryBuilder) AddQueryStringFilter(querystring string, analyseWil b.filters = append(b.filters, &QueryStringFilter{ Query: querystring, AnalyzeWildcard: analyseWildcard, + DefaultOperator: defaultOperator, }) return b } diff --git a/pkg/quickwit/client/search_request_test.go b/pkg/quickwit/client/search_request_test.go index b2cf3c8..18abe48 100644 --- a/pkg/quickwit/client/search_request_test.go +++ b/pkg/quickwit/client/search_request_test.go @@ -48,7 +48,7 @@ func TestSearchRequest(t *testing.T) { b.Sort(SortOrderDesc, timeField, "epoch_nanos_int") filters := b.Query().Bool().Filter() filters.AddDateRangeFilter(timeField, 1684398201000, 1684308201000) - filters.AddQueryStringFilter("test", true) + filters.AddQueryStringFilter("test", true, "AND") t.Run("When building search request", func(t *testing.T) { sr, err := b.Build() diff --git a/pkg/quickwit/data_query.go b/pkg/quickwit/data_query.go index ef7ad30..44d1c4e 100644 --- a/pkg/quickwit/data_query.go +++ b/pkg/quickwit/data_query.go @@ -91,7 +91,7 @@ func (e *elasticsearchDataQuery) processQuery(q *Query, ms *es.MultiSearchReques b.Size(0) filters := b.Query().Bool().Filter() filters.AddDateRangeFilter(defaultTimeField, to, from) - filters.AddQueryStringFilter(q.RawQuery, true) + filters.AddQueryStringFilter(q.RawQuery, true, "AND") if isLogsQuery(q) { processLogsQuery(q, b, from, to, defaultTimeField)