package Ġio . em 2 m . search . core . xform Ċ Ċ import Ġio . em 2 m . search . core . expr . Field Key Handler Ċ import Ġio . em 2 m . search . core . model .* Ċ import Ġio . em 2 m . simp lex . Simp lex Ċ import Ġio . em 2 m . simp lex . model . Expr Ċ import Ġio . em 2 m . simp lex . model . Expr Context Ċ Ċ class ĠField Transformer < T >( val Ġsimp lex : ĠSimp lex , Ġfields : ĠList < Field Model > Ġ= Ġempty List ()) Ġ: ĠTransformer < T > Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġfield Models Ġ= Ġfields . associate By Ġ{ Ġit . name Ġ} ĊĠĠĠ Ġprivate Ġval Ġquery X form Ġ= ĠField Query Transformer ( field Models ) ĊĠĠĠ Ġprivate Ġval Ġag gs X form Ġ= ĠField Agg Transformer ( field Models ) ĊĊĠĠĠ Ġoverride Ġfun Ġtransform Request ( request : ĠSearch Request , Ġcontext : ĠExpr Context ): ĠSearch Request Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsorts Ġ= Ġtransform Sort s ( request . sort s ) ĊĠĠĠĠĠĠĠ Ġval Ġfields Ġ= Ġtransform Fields ( request . fields , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġtransform Query ( request . query , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġval Ġag gs Ġ= Ġtransform Ag gs ( request . ag gs , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġreturn Ġrequest . copy ( sort s Ġ= Ġsorts , Ġfields Ġ= Ġfields , Ġquery Ġ= Ġquery , Ġag gs Ġ= Ġag gs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtransform Result ( ĊĠĠĠĠĠĠĠ Ġrequest : ĠSearch Request , ĊĠĠĠĠĠĠĠ Ġresult : ĠSearch Result < T >, ĊĠĠĠĠĠĠĠ Ġcontext : ĠExpr Context ĊĠĠĠ Ġ): ĠSearch Result < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġagg Results Ġ= Ġtransform Agg Results ( request , Ġresult . ag gs ) ĊĠĠĠĠĠĠĠ Ġval Ġmodels Ġ= Ġreq Models ( request . fields ) ĊĠĠĠĠĠĠĠ Ġval Ġfields Ġ= Ġdelegate Fields ( models ) ĊĠĠĠĠĠĠĠ Ġval Ġrows Ġ= Ġtransform Rows ( request , Ġresult , Ġmodels , Ġfields , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . copy ( ag gs Ġ= Ġagg Results , Ġrows Ġ= Ġrows , Ġfields Ġ= Ġrequest . fields ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtransform Query ( query : ĠQuery ?, Ġcontext : ĠExpr Context ): ĠQuery ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġquery ?. let Ġ{ Ġquery X form . transform ( query , Ġcontext ) Ġ} Ġ?: Ġquery ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtransform Ag gs ( ag gs : ĠList < Agg >, Ġcontext : ĠExpr Context ): ĠList < Agg > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġag gs . map Ġ{ Ġag gs X form . transform ( it , Ġcontext ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtransform Fields ( fields : ĠList < Field >, Ġcontext : ĠExpr Context ): ĠList < Field > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġ 1 . Ġmap Ġexpression Ġinto Ġfields ĊĠĠĠĠĠĠĠ Ġ// Ġ 2 . Ġapply Ġaliases ĊĠĠĠĠĠĠĠ Ġ// Ġ 3 . Ġremove Ġduplicates ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfields . flatMap Ġ{ Ġfield Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field . expr Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpr Ġ= Ġsimp lex . parser . parse ( field . expr ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠField Key Handler . fields ( expr ). map Ġ{ ĠField ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( field ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. flatMap Ġ{ Ġfield Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġfield . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġfield Models [ name ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( model Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( model . delegate Expr Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Field ( expr Ġ= Ġmodel . delegate Expr )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . delegate Fields . map Ġ{ ĠField ( it ) Ġ} Ġ?: ĠlistOf ( field ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( field ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( field ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. distinct () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtransform Sort s ( sort s : ĠList < Doc Sort >): ĠList < Doc Sort > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsorts . flatMap Ġ{ Ġsort Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġfield Models [ sort . field ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( model ?. delegate Fields ?. isNotEmpty () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . delegate Fields . map Ġ{ ĠDoc Sort ( it , Ġsort . direction ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĠlistOf ( sort ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtransform Agg Results ( req : ĠSearch Request , Ġag gs : ĠMap < String , ĠA gg Result >): ĠMap < String , ĠA gg Result > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreq Ag gs Ġ= Ġreq . ag gs . associate By Ġ{ Ġit . key Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġag gs . map Values Ġ{ Ġ( key , Ġagg Result ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġagg Ġ= Ġreq Ag gs [ key ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmissing Ġ= Ġ( agg Ġas ? ĠTerms Agg )?. missing ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpr Ġ= Ġ( agg Ġas ? ĠTerms Agg )?. format Ġ?: Ġ( agg Ġas ? ĠHistogram Agg )?. format ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfield Ġ= Ġ( agg Ġas ? ĠF ielded ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscope : ĠMap < String , ĠAny ?> Ġ= Ġagg ?. extensions Ġ?: Ġempty Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠA gg Result Transformer () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Bucket ( bucket : ĠBucket ): ĠBucket Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( key Ġ!= Ġmissing Ġ&& Ġexpr Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠBucket Context ( req , Ġscope , Ġbucket ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= Ġsimp lex . eval ( expr , Ġcontext . toMap (). plus ( scope )). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbucket . copy ( label Ġ= Ġlabel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġbucket ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform ( agg Result : ĠA gg Result ): ĠA gg Result Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuckets Ġ= Ġagg Result . buckets ?. map Ġ{ Ġtransform Bucket ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( agg Ġis ĠF ielded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagg Result . copy ( field Ġ= Ġagg . field , Ġbuckets Ġ= Ġbuckets ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġagg Result . copy ( buckets Ġ= Ġbuckets ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. transform ( agg Result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreq Models ( fields : ĠList < Field >): ĠList < Field Model > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfields . flatMap Ġ{ Ġfield Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield . expr Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpr Ġ= Ġsimp lex . parser . parse ( field . expr ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠField Key Handler . fields ( expr ). map Ġ{ Ġdelegate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Models [ delegate ] Ġ?: ĠField Model ( name Ġ= Ġdelegate , Ġdelegate Field Ġ= Ġdelegate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield . name Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( field Models [ field . name ] Ġ?: ĠField Model ( field . name , Ġdelegate Field Ġ= Ġfield . name )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdelegate Fields ( models : ĠList < Field Model >): ĠList < Field > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmodels . flatMap Ġ{ Ġmodel Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( model . delegate Expr Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Field ( expr Ġ= Ġmodel . delegate Expr )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . delegate Fields . map Ġ{ Ġdelegate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠField ( name Ġ= Ġdelegate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. distinct () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtransform Rows ( ĊĠĠĠĠĠĠĠ Ġreq : ĠSearch Request , ĊĠĠĠĠĠĠĠ Ġresult : ĠSearch Result < T >, ĊĠĠĠĠĠĠĠ Ġmodels : ĠList < Field Model >, ĊĠĠĠĠĠĠĠ Ġdeleg ates : ĠList < Field >, ĊĠĠĠĠĠĠĠ Ġcontext : ĠExpr Context ĊĠĠĠ Ġ): ĠList < List < Any ? >> ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġlookup Ġ= Ġresult . fields . map Indexed Ġ{ Ġindex , Ġfield Ġ-> Ġfield . name Ġto Ġindex Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult . rows ?. map Ġ{ Ġrow Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠHashMap < String , ĠAny ?> () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . fields . forEach Indexed Ġ{ Ġindex , Ġfield Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues [ field . name Ġ?: Ġfield . expr !! ] Ġ= Ġrow [ index ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġevaluate Ġmodels ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Values Ġ= ĠHashMap < String , ĠAny ?> () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodels . forEach Ġ{ Ġmodel Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpr Context Ġ= ĠRow Context ( req , Ġcontext , Ġvalues ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Values [ model . name ] Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . expr Ġ!= Ġnull Ġ-> Ġmodel . expr . call ( expr Context . toMap (). plus ( model . settings )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . delegate Field Ġ!= Ġnull Ġ-> Ġvalues [ model . delegate Field ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . delegate Expr Ġ!= Ġnull Ġ-> Ġvalues [ model . delegate Expr ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreq . fields . map Ġ{ Ġfield Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpr Context Ġ= ĠRow Context ( req , Ġempty Map (), Ġmodel Values ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field . expr Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimp lex . eval ( field . expr , Ġexpr Context . toMap (). plus ( field . settings )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Values [ field . name ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠField Model ( ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġdelegate Field : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġdelegate Expr : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġexpr : ĠExpr ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġsettings : ĠMap < String , ĠAny ?> Ġ= Ġempty Map (), ĊĠĠĠĠĠĠĠ Ġextra Fields : ĠList < String > Ġ= Ġempty List () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdelegate Fields Ġ= Ġextra Fields Ġ+ Ġif Ġ( expr Ġ!= Ġnull ) ĠField Key Handler . fields ( expr ) Ġelse ĠlistOf NotNull ( delegate Field ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠField Query Transformer ( private Ġval Ġaliases : ĠMap < String , ĠField Model >) Ġ: ĠQuery Transformer () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġapply Alias ( field : ĠString , Ġfn : Ġ( String ) Ġ-> ĠQuery ): ĠQuery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfields Ġ= Ġaliases [ field ]?. delegate Fields Ġ?: ĠlistOf ( field ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġqueries Ġ= Ġfields . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfn ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( queries . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> ĠMatch All Query () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġqueries . first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOr Query ( queries ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Term Query ( query : ĠTerm Query , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( query . field ) Ġ{ ĠTerm Query ( it , Ġquery . value ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Terms Query ( query : ĠTerms Query , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( query . field ) Ġ{ ĠTerms Query ( it , Ġquery . value ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Match Query ( query : ĠMatch Query , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( query . field ) Ġ{ ĠMatch Query ( it , Ġquery . value , Ġquery . operator ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Phrase Query ( query : ĠP hr ase Query , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( query . field ) Ġ{ ĠP hr ase Query ( it , Ġquery . value ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Prefix Query ( query : ĠPrefix Query , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( query . field ) Ġ{ ĠPrefix Query ( it , Ġquery . value ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Wildcard Query ( query : ĠW ildcard Query , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( query . field ) Ġ{ ĠW ildcard Query ( it , Ġquery . value ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Regex Query ( query : ĠRegex Query , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( query . field ) Ġ{ ĠRegex Query ( it , Ġquery . value ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform DateRange Query ( query : ĠDate Range Query , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( query . field ) Ġ{ ĠDate Range Query ( it , Ġquery . lt , Ġquery . lte , Ġquery . gt , Ġquery . gte ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Range Query ( query : ĠRange Query , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( query . field ) Ġ{ ĠRange Query ( it , Ġquery . lt , Ġquery . lte , Ġquery . gt , Ġquery . gte ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform B box Query ( query : ĠB box Query , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( query . field ) Ġ{ ĠB box Query ( it , Ġquery . value ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Exists Query ( query : ĠEx ists Query , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( query . field ) Ġ{ ĠEx ists Query ( it , Ġquery . value ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠField Agg Transformer ( private Ġval Ġfields : ĠMap < String , ĠField Model >) Ġ: ĠA gg Transformer () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġquery Transformer Ġ= ĠField Query Transformer ( fields ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġapply Alias ( field : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfields . getOrElse ( field , Ġ{ Ġnull Ġ}) ?. delegate Fields ?. first OrNull () Ġ?: Ġfield ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Date Histogram Agg ( agg : ĠDate Histogram Agg , Ġcontext : ĠExpr Context ) Ġ= ĠDate Histogram Agg ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( agg . field ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . format , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . interval , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . offset , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . time Zone , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . missing , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . key , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . ag gs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . extensions , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . min Doc Count ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform DateRange Agg ( agg : ĠDate Range Agg , Ġcontext : ĠExpr Context ) Ġ= ĠDate Range Agg ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( agg . field ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . format , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . time Zone , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . ranges , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . key , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . ag gs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . extensions , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . min Doc Count ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Filters Agg ( agg : ĠFilters Agg , Ġcontext : ĠExpr Context ) Ġ= ĠFilters Agg ( agg . filters . map Values Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery Transformer . transform ( it . value , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġ}, Ġagg . key , Ġagg . ag gs , Ġagg . extensions , Ġagg . min Doc Count ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Geo Bounds Agg ( agg : ĠGeo Bounds Agg , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGeo Bounds Agg ( apply Alias ( agg . field ), Ġagg . key , Ġagg . ag gs , Ġagg . extensions , Ġagg . min Doc Count ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Geo Cent roid Agg ( agg : ĠGeo Cent roid Agg , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGeo Cent roid Agg ( apply Alias ( agg . field ), Ġagg . key , Ġagg . ag gs , Ġagg . extensions , Ġagg . min Doc Count ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Geo Distance Agg ( agg : ĠGeo Distance Agg , Ġcontext : ĠExpr Context ) Ġ= ĠGeo Distance Agg ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( agg . field ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . origin , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . unit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . ranges , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . key , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . ag gs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . extensions , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . min Doc Count ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Geo Hash Agg ( agg : ĠGeo Hash Agg , Ġcontext : ĠExpr Context ) Ġ= ĠGeo Hash Agg ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( agg . field ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . precision , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . size , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . key , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . ag gs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . extensions , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . min Doc Count ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Histogram Agg ( agg : ĠHistogram Agg , Ġcontext : ĠExpr Context ) Ġ= ĠHistogram Agg ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( agg . field ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġ/* agg . format , */ Ġ// Ġissue Ġwith Ġag s Ġnot Ġsupporting Ġformat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . interval , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . offset , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . key , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . missing , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . ag gs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . extensions , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . min Doc Count ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Missing Agg ( agg : ĠMissing Agg , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMissing Agg ( apply Alias ( agg . field ), Ġagg . key , Ġagg . ag gs , Ġagg . extensions , Ġagg . min Doc Count ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Range Agg ( agg : ĠRange Agg , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRange Agg ( apply Alias ( agg . field ), Ġagg . ranges , Ġagg . key , Ġagg . ag gs , Ġagg . extensions , Ġagg . min Doc Count ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Stats Agg ( agg : ĠStats Agg , Ġcontext : ĠExpr Context ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStats Agg ( apply Alias ( agg . field ), Ġagg . key , Ġnull Ġ/* agg . format */, Ġagg . ag gs , Ġagg . extensions , Ġagg . min Doc Count ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtransform Terms Agg ( agg : ĠTerms Agg , Ġcontext : ĠExpr Context ) Ġ= ĠTerms Agg ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapply Alias ( agg . field ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . size , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . key , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . sort , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ/* agg . format */, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . missing , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . ag gs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . extensions , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġagg . min Doc Count ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ