71
71
import org .elasticsearch .script .ScoreScript ;
72
72
import org .elasticsearch .script .Script ;
73
73
import org .elasticsearch .script .ScriptContext ;
74
+ import org .elasticsearch .script .ScriptModule ;
74
75
import org .elasticsearch .script .ScriptService ;
75
76
import org .elasticsearch .script .ScriptType ;
76
77
import org .elasticsearch .script .StringFieldScript ;
77
78
import org .elasticsearch .threadpool .ThreadPool ;
78
79
import org .elasticsearch .transport .TransportService ;
79
80
80
81
import java .io .IOException ;
82
+ import java .util .Collections ;
83
+ import java .util .HashMap ;
81
84
import java .util .List ;
82
85
import java .util .Map ;
83
86
import java .util .Objects ;
@@ -110,18 +113,18 @@ public static class Request extends SingleShardRequest<Request> implements ToXCo
110
113
PARSER .declareObject (ConstructingObjectParser .optionalConstructorArg (), ContextSetup ::parse , CONTEXT_SETUP_FIELD );
111
114
}
112
115
113
- static final Map <String , ScriptContext <?>> SUPPORTED_CONTEXTS = Map . of (
114
- "painless_test" , PainlessTestScript . CONTEXT ,
115
- "filter" , FilterScript .CONTEXT ,
116
- "score" , ScoreScript .CONTEXT ,
117
- "boolean_field" , BooleanFieldScript .CONTEXT ,
118
- "date_field" , DateFieldScript . CONTEXT ,
119
- "double_field" , DoubleFieldScript . CONTEXT ,
120
- "geo_point_field" , GeoPointFieldScript . CONTEXT ,
121
- "ip_field" , IpFieldScript . CONTEXT ,
122
- "long_field" , LongFieldScript . CONTEXT ,
123
- "string_field" , StringFieldScript . CONTEXT )
124
- ;
116
+ private static Map <String , ScriptContext <?>> getSupportedContexts () {
117
+ Map < String , ScriptContext <?>> contexts = new HashMap <>();
118
+ contexts . put ( PainlessTestScript . CONTEXT . name , PainlessTestScript .CONTEXT );
119
+ contexts . put ( FilterScript . CONTEXT . name , FilterScript .CONTEXT );
120
+ contexts . put ( ScoreScript . CONTEXT . name , ScoreScript .CONTEXT );
121
+ for ( ScriptContext <?> runtimeFieldsContext : ScriptModule . RUNTIME_FIELDS_CONTEXTS ) {
122
+ contexts . put ( runtimeFieldsContext . name , runtimeFieldsContext );
123
+ }
124
+ return Collections . unmodifiableMap ( contexts );
125
+ }
126
+
127
+ static final Map < String , ScriptContext <?>> SUPPORTED_CONTEXTS = getSupportedContexts () ;
125
128
126
129
static ScriptContext <?> fromScriptContextName (String name ) {
127
130
ScriptContext <?> scriptContext = SUPPORTED_CONTEXTS .get (name );
@@ -541,15 +544,15 @@ static Response innerShardOperation(Request request, ScriptService scriptService
541
544
return prepareRamIndex (request , (context , leafReaderContext ) -> {
542
545
BooleanFieldScript .Factory factory = scriptService .compile (request .script , BooleanFieldScript .CONTEXT );
543
546
BooleanFieldScript .LeafFactory leafFactory =
544
- factory .newFactory ("boolean_field" , request .getScript ().getParams (), context .lookup ());
547
+ factory .newFactory (BooleanFieldScript . CONTEXT . name , request .getScript ().getParams (), context .lookup ());
545
548
BooleanFieldScript booleanFieldScript = leafFactory .newInstance (leafReaderContext );
546
549
booleanFieldScript .runForDoc (0 );
547
550
return new Response (booleanFieldScript .asDocValues ());
548
551
}, indexService );
549
552
} else if (scriptContext == DateFieldScript .CONTEXT ) {
550
553
return prepareRamIndex (request , (context , leafReaderContext ) -> {
551
554
DateFieldScript .Factory factory = scriptService .compile (request .script , DateFieldScript .CONTEXT );
552
- DateFieldScript .LeafFactory leafFactory = factory .newFactory ("date_field" ,
555
+ DateFieldScript .LeafFactory leafFactory = factory .newFactory (DateFieldScript . CONTEXT . name ,
553
556
request .getScript ().getParams (), context .lookup (), DateFieldMapper .DEFAULT_DATE_TIME_FORMATTER );
554
557
DateFieldScript dateFieldScript = leafFactory .newInstance (leafReaderContext );
555
558
dateFieldScript .runForDoc (0 );
@@ -559,7 +562,7 @@ static Response innerShardOperation(Request request, ScriptService scriptService
559
562
return prepareRamIndex (request , (context , leafReaderContext ) -> {
560
563
DoubleFieldScript .Factory factory = scriptService .compile (request .script , DoubleFieldScript .CONTEXT );
561
564
DoubleFieldScript .LeafFactory leafFactory =
562
- factory .newFactory ("double_field" , request .getScript ().getParams (), context .lookup ());
565
+ factory .newFactory (DoubleFieldScript . CONTEXT . name , request .getScript ().getParams (), context .lookup ());
563
566
DoubleFieldScript doubleFieldScript = leafFactory .newInstance (leafReaderContext );
564
567
doubleFieldScript .runForDoc (0 );
565
568
return new Response (doubleFieldScript .asDocValues ());
@@ -568,7 +571,7 @@ static Response innerShardOperation(Request request, ScriptService scriptService
568
571
return prepareRamIndex (request , (context , leafReaderContext ) -> {
569
572
GeoPointFieldScript .Factory factory = scriptService .compile (request .script , GeoPointFieldScript .CONTEXT );
570
573
GeoPointFieldScript .LeafFactory leafFactory =
571
- factory .newFactory ("geo_point_field" , request .getScript ().getParams (), context .lookup ());
574
+ factory .newFactory (GeoPointFieldScript . CONTEXT . name , request .getScript ().getParams (), context .lookup ());
572
575
GeoPointFieldScript geoPointFieldScript = leafFactory .newInstance (leafReaderContext );
573
576
geoPointFieldScript .runForDoc (0 );
574
577
return new Response (geoPointFieldScript .asDocValues ());
@@ -577,7 +580,7 @@ static Response innerShardOperation(Request request, ScriptService scriptService
577
580
return prepareRamIndex (request , (context , leafReaderContext ) -> {
578
581
IpFieldScript .Factory factory = scriptService .compile (request .script , IpFieldScript .CONTEXT );
579
582
IpFieldScript .LeafFactory leafFactory =
580
- factory .newFactory ("ip_field" , request .getScript ().getParams (), context .lookup ());
583
+ factory .newFactory (IpFieldScript . CONTEXT . name , request .getScript ().getParams (), context .lookup ());
581
584
IpFieldScript ipFieldScript = leafFactory .newInstance (leafReaderContext );
582
585
ipFieldScript .runForDoc (0 );
583
586
return new Response (ipFieldScript .asDocValues ());
@@ -586,7 +589,7 @@ static Response innerShardOperation(Request request, ScriptService scriptService
586
589
return prepareRamIndex (request , (context , leafReaderContext ) -> {
587
590
LongFieldScript .Factory factory = scriptService .compile (request .script , LongFieldScript .CONTEXT );
588
591
LongFieldScript .LeafFactory leafFactory =
589
- factory .newFactory ("long_field" , request .getScript ().getParams (), context .lookup ());
592
+ factory .newFactory (LongFieldScript . CONTEXT . name , request .getScript ().getParams (), context .lookup ());
590
593
LongFieldScript longFieldScript = leafFactory .newInstance (leafReaderContext );
591
594
longFieldScript .runForDoc (0 );
592
595
return new Response (longFieldScript .asDocValues ());
@@ -595,7 +598,7 @@ static Response innerShardOperation(Request request, ScriptService scriptService
595
598
return prepareRamIndex (request , (context , leafReaderContext ) -> {
596
599
StringFieldScript .Factory factory = scriptService .compile (request .script , StringFieldScript .CONTEXT );
597
600
StringFieldScript .LeafFactory leafFactory =
598
- factory .newFactory ("string_field" , request .getScript ().getParams (), context .lookup ());
601
+ factory .newFactory (StringFieldScript . CONTEXT . name , request .getScript ().getParams (), context .lookup ());
599
602
StringFieldScript stringFieldScript = leafFactory .newInstance (leafReaderContext );
600
603
stringFieldScript .resultsForDoc (0 );
601
604
return new Response (stringFieldScript .asDocValues ());
0 commit comments