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';
3535
3636import { SECOND } from 'utils/time' ;
3737import { GConstructor } from 'utils/mixins' ;
38+ import { LuceneQuery } from '@/utils/lucene' ;
3839
3940export type BaseQuickwitDataSourceConstructor = GConstructor < BaseQuickwitDataSource >
4041
@@ -113,24 +114,18 @@ export class BaseQuickwitDataSource
113114 return query ;
114115 }
115116
116- let expression = query . query ?? '' ;
117+ let lquery = LuceneQuery . parse ( query . query ?? '' )
117118 switch ( action . type ) {
118119 case 'ADD_FILTER' : {
119- if ( expression . length > 0 ) {
120- expression += ' AND ' ;
121- }
122- expression += `${ action . options . key } :"${ action . options . value } "` ;
120+ lquery = lquery . addFilter ( action . options . key , action . options . value )
123121 break ;
124122 }
125123 case 'ADD_FILTER_OUT' : {
126- if ( expression . length > 0 ) {
127- expression += ' AND ' ;
128- }
129- expression += `-${ action . options . key } :"${ action . options . value } "` ;
124+ lquery = lquery . addFilter ( action . options . key , action . options . value , '-' )
130125 break ;
131126 }
132127 }
133- return { ...query , query : expression } ;
128+ return { ...query , query : lquery . toString ( ) } ;
134129 }
135130
136131 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 {
142142/**
143143 * Merge a query with a filter.
144144 */
145- export function concatenate ( query : string , filter : string , condition = 'AND' ) : string {
145+ export function concatenate ( query : string , filter : string , operator ?: 'AND' | 'OR ') : string {
146146 if ( ! filter ) {
147147 return query ;
148148 }
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 } `
150154}
151155
152156export class LuceneQuery {
You can’t perform that action at this time.
0 commit comments