@@ -78,7 +78,7 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
78
78
range [ timeField ] [ "format" ] = "epoch_millis" ;
79
79
}
80
80
81
- var queryInterpolated = templateSrv . replace ( queryString ) ;
81
+ var queryInterpolated = templateSrv . replace ( queryString , { } , 'lucene' ) ;
82
82
var filter = { "bool" : { "must" : [ { "range" : range } ] } } ;
83
83
var query = { "bool" : { "should" : [ { "query_string" : { "query" : queryInterpolated } } ] } } ;
84
84
var data = {
@@ -204,6 +204,14 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
204
204
} ) ;
205
205
} ;
206
206
207
+ function escapeForJson ( value ) {
208
+ return value . replace ( / \" / g, '\\"' ) ;
209
+ }
210
+
211
+ function luceneThenJsonFormat ( value ) {
212
+ return escapeForJson ( templateSrv . luceneFormat ( value ) ) ;
213
+ }
214
+
207
215
this . getFields = function ( query ) {
208
216
return this . _get ( '/_mapping' ) . then ( function ( res ) {
209
217
var fields = { } ;
@@ -246,7 +254,7 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
246
254
var header = this . getQueryHeader ( 'count' , range . from , range . to ) ;
247
255
var esQuery = angular . toJson ( this . queryBuilder . getTermsQuery ( queryDef ) ) ;
248
256
249
- esQuery = esQuery . replace ( "$lucene_query" , queryDef . query || '*' ) ;
257
+ esQuery = esQuery . replace ( "$lucene_query" , escapeForJson ( queryDef . query || '*' ) ) ;
250
258
esQuery = esQuery . replace ( / \$ t i m e F r o m / g, range . from . valueOf ( ) ) ;
251
259
esQuery = esQuery . replace ( / \$ t i m e T o / g, range . to . valueOf ( ) ) ;
252
260
esQuery = header + '\n' + esQuery + '\n' ;
@@ -260,7 +268,7 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
260
268
} ;
261
269
262
270
this . metricFindQuery = function ( query ) {
263
- query = templateSrv . replace ( query ) ;
271
+ query = templateSrv . replace ( query , { } , luceneThenJsonFormat ) ;
264
272
query = angular . fromJson ( query ) ;
265
273
if ( ! query ) {
266
274
return $q . when ( [ ] ) ;
0 commit comments