@@ -14,7 +14,7 @@ const (
1414 defaultSize = 100
1515)
1616
17- func buildMSR (queries []* Query , defaultTimeField string ) ([]* es.SearchRequest , error ) {
17+ func buildMSR (queries []* Query , defaultTimeField string , forcedQueryFilter string ) ([]* es.SearchRequest , error ) {
1818 ms := es .NewMultiSearchRequestBuilder ()
1919
2020 for _ , q := range queries {
@@ -31,7 +31,7 @@ func buildMSR(queries []*Query, defaultTimeField string) ([]*es.SearchRequest, e
3131 // trace_id lookups go from "scan every split" to "scan a few" — the
3232 // same speedup the native Jaeger endpoint gets via auto-derived bounds.
3333 filters .AddDateRangeFilter (defaultTimeField , q .RangeTo , q .RangeFrom )
34- filters .AddQueryStringFilter (q .RawQuery , true , "AND" )
34+ filters .AddQueryStringFilter (applyForcedQueryFilter ( q .RawQuery , forcedQueryFilter ) , true , "AND" )
3535 if isTraceSearchQuery (q ) {
3636 filters .AddQueryStringFilter (traceSearchSettingsQuery (q ), true , "AND" )
3737 }
@@ -53,6 +53,20 @@ func buildMSR(queries []*Query, defaultTimeField string) ([]*es.SearchRequest, e
5353 return ms .Build ()
5454}
5555
56+ func applyForcedQueryFilter (rawQuery string , forcedQueryFilter string ) string {
57+ query := strings .TrimSpace (rawQuery )
58+ forced := strings .TrimSpace (forcedQueryFilter )
59+
60+ if forced == "" {
61+ return query
62+ }
63+ if query == "" {
64+ return forced
65+ }
66+
67+ return query + " AND " + forced
68+ }
69+
5670func setFloatPath (settings * simplejson.Json , path ... string ) {
5771 if stringValue , err := settings .GetPath (path ... ).String (); err == nil {
5872 if value , err := strconv .ParseFloat (stringValue , 64 ); err == nil {
0 commit comments