SCRIPTING: Terms set query expression#33856
SCRIPTING: Terms set query expression#33856original-brownbear merged 8 commits intoelastic:masterfrom original-brownbear:terms-set-query-expression
Conversation
* Follow up to #33602 adding the ability to compile TermsSetQuery scripts with the expressions engine in the same way we support SearchScript in Expressions * Duplicated the code here for now to make the change less complex, the only difference to SearchScript is that `_score` and `_value` are not handled for TermsSetQuery
|
Pinging @elastic/es-core-infra |
| MapperService mapper = lookup.doc().mapperService(); | ||
| // NOTE: if we need to do anything complicated with bindings in the future, we can just extend Bindings, | ||
| // instead of complicating SimpleBindings (which should stay simple) | ||
| SimpleBindings bindings = new SimpleBindings(); |
There was a problem hiding this comment.
I'm worried about a copy/paste of the bindings creation here, as we do change this from time to time. Can you move it out so it is shared with SearchScript creation?
There was a problem hiding this comment.
Sounds good, happy to dry this up :)
|
@rjernst dried up the solution, should be good for another review :) |
rjernst
left a comment
There was a problem hiding this comment.
LGTM, a few minor naming suggestions
| throw new ScriptException(message, cause, stack, source, NAME); | ||
| } | ||
|
|
||
| private static ValueSource getValueSource(String variable, SearchLookup lookup) throws ParseException { |
There was a problem hiding this comment.
I would name this related to "doc" since it is always the doc variable?
| // TODO: document and/or error if vars contains _score? | ||
| // NOTE: by checking for the variable in vars first, it allows masking document fields with a global constant, | ||
| // but if we were to reverse it, we could provide a way to supply dynamic defaults for documents missing the field? | ||
| private static void bindFromVars(@Nullable final Map<String, Object> vars, final SimpleBindings bindings, final String variable) throws ParseException { |
There was a problem hiding this comment.
I know "vars" is the terminology used in the code originally, but irrc this is actually params? I think that naming would be better.
|
@rjernst thanks, renamings applied -> will merge once green :) |
* master: (25 commits) HLRC: ML Adding get datafeed stats API (elastic#34271) Small fixes to the HLRC watcher documentation. (elastic#34306) Tasks: Document that status is not semvered (elastic#34270) HLRC: ML Add preview datafeed api (elastic#34284) [CI] Fix bogus ScheduleWithFixedDelayTests.testRunnableRunsAtMostOnceAfterCancellation Fix error in documentation for activete watch SCRIPTING: Terms set query expression (elastic#33856) Logging: Drop remaining Settings log ctor (elastic#34149) [ML] Remove unused last_data_time member from Job (elastic#34262) Docs: Allow skipping response assertions (elastic#34240) HLRC: Add activate watch action (elastic#33988) [Security] Multi Index Expression alias wildcard exclusion (elastic#34144) [ML] Label anomalies with multi_bucket_impact (elastic#34233) Document smtp.ssl.trust configuration option (elastic#34275) Support PKCS#11 tokens as keystores and truststores (elastic#34063) Fix sporadic failure in NestedObjectMapperTests [Authz] Allow update settings action for system user (elastic#34030) Replace version with reader cache key in IndicesRequestCache (elastic#34189) [TESTS] Set SO_LINGER and SO_REUSEADDR on the mock socket (elastic#34211) Security: upgrade unboundid ldapsdk to 4.0.8 (elastic#34247) ...
* rename-ccr-stats: (25 commits) HLRC: ML Adding get datafeed stats API (elastic#34271) Small fixes to the HLRC watcher documentation. (elastic#34306) Tasks: Document that status is not semvered (elastic#34270) HLRC: ML Add preview datafeed api (elastic#34284) [CI] Fix bogus ScheduleWithFixedDelayTests.testRunnableRunsAtMostOnceAfterCancellation Fix error in documentation for activete watch SCRIPTING: Terms set query expression (elastic#33856) Logging: Drop remaining Settings log ctor (elastic#34149) [ML] Remove unused last_data_time member from Job (elastic#34262) Docs: Allow skipping response assertions (elastic#34240) HLRC: Add activate watch action (elastic#33988) [Security] Multi Index Expression alias wildcard exclusion (elastic#34144) [ML] Label anomalies with multi_bucket_impact (elastic#34233) Document smtp.ssl.trust configuration option (elastic#34275) Support PKCS#11 tokens as keystores and truststores (elastic#34063) Fix sporadic failure in NestedObjectMapperTests [Authz] Allow update settings action for system user (elastic#34030) Replace version with reader cache key in IndicesRequestCache (elastic#34189) [TESTS] Set SO_LINGER and SO_REUSEADDR on the mock socket (elastic#34211) Security: upgrade unboundid ldapsdk to 4.0.8 (elastic#34247) ...
* SCRIPTING: Add Expr. Compile for TermSetQuery Ctx. * Follow up to #33602 adding the ability to compile TermsSetQuery scripts with the expressions engine in the same way we support SearchScript in Expressions * Duplicated the code here for now to make the change less complex, the only difference to SearchScript is that `_score` and `_value` are not handled for TermsSetQuery * remove redundant check
scripts with the expressions engine in the same way we support
SearchScript in Expressions
the only difference to SearchScript is that
_scoreand_valueare not handled for TermsSetQuery