summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java')
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java49
1 files changed, 11 insertions, 38 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java
index 1c3f5b7ed5..ee829943ae 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java
@@ -32,7 +32,6 @@ import org.elasticsearch.script.ExecutableScript;
import org.elasticsearch.script.Script;
import org.elasticsearch.script.Script.ScriptField;
import org.elasticsearch.script.ScriptContext;
-import org.elasticsearch.script.ScriptService;
import org.elasticsearch.search.aggregations.InternalAggregation;
import org.elasticsearch.search.aggregations.support.XContentParseContext;
import org.elasticsearch.search.internal.SearchContext;
@@ -49,7 +48,7 @@ public class ScriptHeuristic extends SignificanceHeuristic {
private final LongAccessor subsetDfHolder;
private final LongAccessor supersetDfHolder;
private final Script script;
- ExecutableScript searchScript = null;
+ ExecutableScript executableScript = null;
public ScriptHeuristic(Script script) {
subsetSizeHolder = new LongAccessor();
@@ -73,21 +72,20 @@ public class ScriptHeuristic extends SignificanceHeuristic {
@Override
public void initialize(InternalAggregation.ReduceContext context) {
- initialize(context.scriptService());
+ initialize(context.scriptService().executable(script, ScriptContext.Standard.AGGS, Collections.emptyMap()));
}
@Override
public void initialize(SearchContext context) {
- context.markAsNotCachable();
- initialize(context.scriptService());
+ initialize(context.getQueryShardContext().getExecutableScript(script, ScriptContext.Standard.AGGS, Collections.emptyMap()));
}
- public void initialize(ScriptService scriptService) {
- searchScript = scriptService.executable(script, ScriptContext.Standard.AGGS, Collections.emptyMap());
- searchScript.setNextVar("_subset_freq", subsetDfHolder);
- searchScript.setNextVar("_subset_size", subsetSizeHolder);
- searchScript.setNextVar("_superset_freq", supersetDfHolder);
- searchScript.setNextVar("_superset_size", supersetSizeHolder);
+ public void initialize(ExecutableScript executableScript) {
+ this.executableScript = executableScript;
+ this.executableScript.setNextVar("_subset_freq", subsetDfHolder);
+ this.executableScript.setNextVar("_subset_size", subsetSizeHolder);
+ this.executableScript.setNextVar("_superset_freq", supersetDfHolder);
+ this.executableScript.setNextVar("_superset_size", supersetSizeHolder);
}
/**
@@ -101,7 +99,7 @@ public class ScriptHeuristic extends SignificanceHeuristic {
*/
@Override
public double getScore(long subsetFreq, long subsetSize, long supersetFreq, long supersetSize) {
- if (searchScript == null) {
+ if (executableScript == null) {
//In tests, wehn calling assertSearchResponse(..) the response is streamed one additional time with an arbitrary version, see assertVersionSerializable(..).
// Now, for version before 1.5.0 the score is computed after streaming the response but for scripts the script does not exists yet.
// assertSearchResponse() might therefore fail although there is no problem.
@@ -113,7 +111,7 @@ public class ScriptHeuristic extends SignificanceHeuristic {
supersetSizeHolder.value = supersetSize;
subsetDfHolder.value = subsetFreq;
supersetDfHolder.value = supersetFreq;
- return ((Number) searchScript.run()).doubleValue();
+ return ((Number) executableScript.run()).doubleValue();
}
@Override
@@ -172,26 +170,6 @@ public class ScriptHeuristic extends SignificanceHeuristic {
return new ScriptHeuristic(script);
}
- public static class ScriptHeuristicBuilder implements SignificanceHeuristicBuilder {
-
- private Script script = null;
-
- public ScriptHeuristicBuilder setScript(Script script) {
- this.script = script;
- return this;
- }
-
- @Override
- public XContentBuilder toXContent(XContentBuilder builder, Params builderParams) throws IOException {
- builder.startObject(NAME);
- builder.field(ScriptField.SCRIPT.getPreferredName());
- script.toXContent(builder, builderParams);
- builder.endObject();
- return builder;
- }
-
- }
-
public final class LongAccessor extends Number {
public long value;
@Override
@@ -218,10 +196,5 @@ public class ScriptHeuristic extends SignificanceHeuristic {
return Long.toString(value);
}
}
-
- @Override
- public boolean canCache() {
- return false;
- }
}