|
44 | 44 | import org.elasticsearch.script.ScriptContext;
|
45 | 45 | import org.elasticsearch.script.ScriptEngine;
|
46 | 46 | import org.elasticsearch.script.ScriptException;
|
47 |
| -import org.elasticsearch.script.ScriptFactory; |
48 | 47 | import org.elasticsearch.script.TermsSetQueryScript;
|
49 | 48 | import org.elasticsearch.search.lookup.SearchLookup;
|
50 | 49 |
|
@@ -88,33 +87,83 @@ public boolean execute() {
|
88 | 87 | return wrappedFactory; });
|
89 | 88 |
|
90 | 89 | contexts.put(FilterScript.CONTEXT,
|
91 |
| - (Expression expr) -> (FilterScript.Factory) (p, lookup) -> newFilterScript(expr, lookup, p)); |
| 90 | + (Expression expr) -> new FilterScript.Factory() { |
| 91 | + @Override |
| 92 | + public boolean isResultDeterministic() { |
| 93 | + return true; |
| 94 | + } |
| 95 | + |
| 96 | + @Override |
| 97 | + public FilterScript.LeafFactory newFactory(Map<String, Object> params, SearchLookup lookup) { |
| 98 | + return newFilterScript(expr, lookup, params); |
| 99 | + } |
| 100 | + }); |
92 | 101 |
|
93 | 102 | contexts.put(ScoreScript.CONTEXT,
|
94 |
| - (Expression expr) -> (ScoreScript.Factory) (p, lookup) -> newScoreScript(expr, lookup, p)); |
| 103 | + (Expression expr) -> new ScoreScript.Factory() { |
| 104 | + @Override |
| 105 | + public ScoreScript.LeafFactory newFactory(Map<String, Object> params, SearchLookup lookup) { |
| 106 | + return newScoreScript(expr, lookup, params); |
| 107 | + } |
| 108 | + |
| 109 | + @Override |
| 110 | + public boolean isResultDeterministic() { |
| 111 | + return true; |
| 112 | + } |
| 113 | + }); |
95 | 114 |
|
96 | 115 | contexts.put(TermsSetQueryScript.CONTEXT,
|
97 | 116 | (Expression expr) -> (TermsSetQueryScript.Factory) (p, lookup) -> newTermsSetQueryScript(expr, lookup, p));
|
98 | 117 |
|
99 | 118 | contexts.put(AggregationScript.CONTEXT,
|
100 |
| - (Expression expr) -> (AggregationScript.Factory) (p, lookup) -> newAggregationScript(expr, lookup, p)); |
| 119 | + (Expression expr) -> new AggregationScript.Factory() { |
| 120 | + @Override |
| 121 | + public AggregationScript.LeafFactory newFactory(Map<String, Object> params, SearchLookup lookup) { |
| 122 | + return newAggregationScript(expr, lookup, params); |
| 123 | + } |
| 124 | + |
| 125 | + @Override |
| 126 | + public boolean isResultDeterministic() { |
| 127 | + return true; |
| 128 | + } |
| 129 | + }); |
101 | 130 |
|
102 | 131 | contexts.put(NumberSortScript.CONTEXT,
|
103 |
| - (Expression expr) -> (NumberSortScript.Factory) (p, lookup) -> newSortScript(expr, lookup, p)); |
| 132 | + (Expression expr) -> new NumberSortScript.Factory() { |
| 133 | + @Override |
| 134 | + public NumberSortScript.LeafFactory newFactory(Map<String, Object> params, SearchLookup lookup) { |
| 135 | + return newSortScript(expr, lookup, params); |
| 136 | + } |
| 137 | + |
| 138 | + @Override |
| 139 | + public boolean isResultDeterministic() { |
| 140 | + return true; |
| 141 | + } |
| 142 | + }); |
104 | 143 |
|
105 | 144 | contexts.put(FieldScript.CONTEXT,
|
106 |
| - (Expression expr) -> (FieldScript.Factory) (p, lookup) -> newFieldScript(expr, lookup, p)); |
| 145 | + (Expression expr) -> new FieldScript.Factory() { |
| 146 | + @Override |
| 147 | + public FieldScript.LeafFactory newFactory(Map<String, Object> params, SearchLookup lookup) { |
| 148 | + return newFieldScript(expr, lookup, params); |
| 149 | + } |
107 | 150 |
|
108 |
| - ExpressionScriptEngine.contexts = Collections.unmodifiableMap(contexts); |
109 |
| - } |
| 151 | + @Override |
| 152 | + public boolean isResultDeterministic() { |
| 153 | + return true; |
| 154 | + } |
| 155 | + }); |
| 156 | + |
| 157 | + ExpressionScriptEngine.contexts = Collections.unmodifiableMap(contexts); |
| 158 | + } |
110 | 159 |
|
111 | 160 | @Override
|
112 | 161 | public String getType() {
|
113 | 162 | return NAME;
|
114 | 163 | }
|
115 | 164 |
|
116 | 165 | @Override
|
117 |
| - public <T extends ScriptFactory> T compile( |
| 166 | + public <T> T compile( |
118 | 167 | String scriptName,
|
119 | 168 | String scriptSource,
|
120 | 169 | ScriptContext<T> context,
|
|
0 commit comments