File tree Expand file tree Collapse file tree 2 files changed +11
-12
lines changed Expand file tree Collapse file tree 2 files changed +11
-12
lines changed Original file line number Diff line number Diff line change @@ -35,6 +35,7 @@ import { getQueryResponseProcessor } from 'datasource/processResponse';
35
35
36
36
import { SECOND } from 'utils/time' ;
37
37
import { GConstructor } from 'utils/mixins' ;
38
+ import { LuceneQuery } from '@/utils/lucene' ;
38
39
39
40
export type BaseQuickwitDataSourceConstructor = GConstructor < BaseQuickwitDataSource >
40
41
@@ -114,24 +115,18 @@ export class BaseQuickwitDataSource
114
115
return query ;
115
116
}
116
117
117
- let expression = query . query ?? '' ;
118
+ let lquery = LuceneQuery . parse ( query . query ?? '' )
118
119
switch ( action . type ) {
119
120
case 'ADD_FILTER' : {
120
- if ( expression . length > 0 ) {
121
- expression += ' AND ' ;
122
- }
123
- expression += `${ action . options . key } :"${ action . options . value } "` ;
121
+ lquery = lquery . addFilter ( action . options . key , action . options . value )
124
122
break ;
125
123
}
126
124
case 'ADD_FILTER_OUT' : {
127
- if ( expression . length > 0 ) {
128
- expression += ' AND ' ;
129
- }
130
- expression += `-${ action . options . key } :"${ action . options . value } "` ;
125
+ lquery = lquery . addFilter ( action . options . key , action . options . value , '-' )
131
126
break ;
132
127
}
133
128
}
134
- return { ...query , query : expression } ;
129
+ return { ...query , query : lquery . toString ( ) } ;
135
130
}
136
131
137
132
getDataQueryRequest ( queryDef : TermsQuery , range : TimeRange ) {
Original file line number Diff line number Diff line change @@ -142,11 +142,15 @@ function removeNodeFromTree(ast: AST, node: NodeTerm): AST {
142
142
/**
143
143
* Merge a query with a filter.
144
144
*/
145
- export function concatenate ( query : string , filter : string , condition = 'AND' ) : string {
145
+ export function concatenate ( query : string , filter : string , operator ?: 'AND' | 'OR ') : string {
146
146
if ( ! filter ) {
147
147
return query ;
148
148
}
149
- return query . trim ( ) === '' ? filter : `${ query } ${ condition } ${ filter } ` ;
149
+ if ( query . trim ( ) === '' ) {
150
+ return filter ;
151
+ }
152
+
153
+ return operator ? `${ query } ${ operator } ${ filter } ` : `${ query } ${ filter } `
150
154
}
151
155
152
156
export class LuceneQuery {
You can’t perform that action at this time.
0 commit comments