remove ParseFieldMatcher usages from Script parsing code
This commit is contained in:
parent
6b9a8db069
commit
6102523033
|
@ -27,7 +27,6 @@ import org.elasticsearch.action.support.WriteRequest;
|
||||||
import org.elasticsearch.action.support.replication.ReplicationRequest;
|
import org.elasticsearch.action.support.replication.ReplicationRequest;
|
||||||
import org.elasticsearch.action.support.single.instance.InstanceShardOperationRequest;
|
import org.elasticsearch.action.support.single.instance.InstanceShardOperationRequest;
|
||||||
import org.elasticsearch.common.Nullable;
|
import org.elasticsearch.common.Nullable;
|
||||||
import org.elasticsearch.common.ParseFieldMatcher;
|
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
import org.elasticsearch.common.logging.DeprecationLogger;
|
import org.elasticsearch.common.logging.DeprecationLogger;
|
||||||
|
@ -714,7 +713,7 @@ public class UpdateRequest extends InstanceShardOperationRequest<UpdateRequest>
|
||||||
if (token == XContentParser.Token.FIELD_NAME) {
|
if (token == XContentParser.Token.FIELD_NAME) {
|
||||||
currentFieldName = parser.currentName();
|
currentFieldName = parser.currentName();
|
||||||
} else if ("script".equals(currentFieldName)) {
|
} else if ("script".equals(currentFieldName)) {
|
||||||
script = Script.parse(parser, ParseFieldMatcher.EMPTY);
|
script = Script.parse(parser);
|
||||||
} else if ("scripted_upsert".equals(currentFieldName)) {
|
} else if ("scripted_upsert".equals(currentFieldName)) {
|
||||||
scriptedUpsert = parser.booleanValue();
|
scriptedUpsert = parser.booleanValue();
|
||||||
} else if ("upsert".equals(currentFieldName)) {
|
} else if ("upsert".equals(currentFieldName)) {
|
||||||
|
|
|
@ -100,7 +100,7 @@ public class ScriptQueryBuilder extends AbstractQueryBuilder<ScriptQueryBuilder>
|
||||||
// skip
|
// skip
|
||||||
} else if (token == XContentParser.Token.START_OBJECT) {
|
} else if (token == XContentParser.Token.START_OBJECT) {
|
||||||
if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, parseContext.getParseFieldMatcher(), parseContext.getDefaultScriptLanguage());
|
script = Script.parse(parser, parseContext.getDefaultScriptLanguage());
|
||||||
} else {
|
} else {
|
||||||
throw new ParsingException(parser.getTokenLocation(), "[script] query does not support [" + currentFieldName + "]");
|
throw new ParsingException(parser.getTokenLocation(), "[script] query does not support [" + currentFieldName + "]");
|
||||||
}
|
}
|
||||||
|
@ -110,7 +110,7 @@ public class ScriptQueryBuilder extends AbstractQueryBuilder<ScriptQueryBuilder>
|
||||||
} else if (AbstractQueryBuilder.BOOST_FIELD.match(currentFieldName)) {
|
} else if (AbstractQueryBuilder.BOOST_FIELD.match(currentFieldName)) {
|
||||||
boost = parser.floatValue();
|
boost = parser.floatValue();
|
||||||
} else if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
} else if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, parseContext.getParseFieldMatcher(), parseContext.getDefaultScriptLanguage());
|
script = Script.parse(parser, parseContext.getDefaultScriptLanguage());
|
||||||
} else {
|
} else {
|
||||||
throw new ParsingException(parser.getTokenLocation(), "[script] query does not support [" + currentFieldName + "]");
|
throw new ParsingException(parser.getTokenLocation(), "[script] query does not support [" + currentFieldName + "]");
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@ public class ScriptScoreFunctionBuilder extends ScoreFunctionBuilder<ScriptScore
|
||||||
currentFieldName = parser.currentName();
|
currentFieldName = parser.currentName();
|
||||||
} else {
|
} else {
|
||||||
if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, parseContext.getParseFieldMatcher(), parseContext.getDefaultScriptLanguage());
|
script = Script.parse(parser, parseContext.getDefaultScriptLanguage());
|
||||||
} else {
|
} else {
|
||||||
throw new ParsingException(parser.getTokenLocation(), NAME + " query does not support [" + currentFieldName + "]");
|
throw new ParsingException(parser.getTokenLocation(), NAME + " query does not support [" + currentFieldName + "]");
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,6 @@ package org.elasticsearch.script;
|
||||||
|
|
||||||
import org.elasticsearch.Version;
|
import org.elasticsearch.Version;
|
||||||
import org.elasticsearch.common.ParseField;
|
import org.elasticsearch.common.ParseField;
|
||||||
import org.elasticsearch.common.ParseFieldMatcher;
|
|
||||||
import org.elasticsearch.common.ParseFieldMatcherSupplier;
|
|
||||||
import org.elasticsearch.common.bytes.BytesArray;
|
import org.elasticsearch.common.bytes.BytesArray;
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
|
@ -35,7 +33,6 @@ import org.elasticsearch.common.xcontent.XContentFactory;
|
||||||
import org.elasticsearch.common.xcontent.XContentParser;
|
import org.elasticsearch.common.xcontent.XContentParser;
|
||||||
import org.elasticsearch.common.xcontent.XContentParser.Token;
|
import org.elasticsearch.common.xcontent.XContentParser.Token;
|
||||||
import org.elasticsearch.common.xcontent.XContentType;
|
import org.elasticsearch.common.xcontent.XContentType;
|
||||||
import org.elasticsearch.index.query.QueryParseContext;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UncheckedIOException;
|
import java.io.UncheckedIOException;
|
||||||
|
@ -211,7 +208,7 @@ public final class Script implements ToXContent, Writeable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final ObjectParser<Builder, ParseFieldMatcherSupplier> PARSER = new ObjectParser<>("script", Builder::new);
|
private static final ObjectParser<Builder, Void> PARSER = new ObjectParser<>("script", Builder::new);
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// Defines the fields necessary to parse a Script as XContent using an ObjectParser.
|
// Defines the fields necessary to parse a Script as XContent using an ObjectParser.
|
||||||
|
@ -224,19 +221,11 @@ public final class Script implements ToXContent, Writeable {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convenience method to call {@link Script#parse(XContentParser, ParseFieldMatcher, String)}
|
* Convenience method to call {@link Script#parse(XContentParser, String)}
|
||||||
* using the default scripting language.
|
* using the default scripting language.
|
||||||
*/
|
*/
|
||||||
public static Script parse(XContentParser parser, ParseFieldMatcher matcher) throws IOException {
|
public static Script parse(XContentParser parser) throws IOException {
|
||||||
return parse(parser, matcher, DEFAULT_SCRIPT_LANG);
|
return parse(parser, DEFAULT_SCRIPT_LANG);
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convenience method to call {@link Script#parse(XContentParser, ParseFieldMatcher, String)} using the
|
|
||||||
* {@link ParseFieldMatcher} and scripting language provided by the {@link QueryParseContext}.
|
|
||||||
*/
|
|
||||||
public static Script parse(XContentParser parser, QueryParseContext context) throws IOException {
|
|
||||||
return parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -300,13 +289,12 @@ public final class Script implements ToXContent, Writeable {
|
||||||
* }
|
* }
|
||||||
*
|
*
|
||||||
* @param parser The {@link XContentParser} to be used.
|
* @param parser The {@link XContentParser} to be used.
|
||||||
* @param matcher The {@link ParseFieldMatcher} to be used.
|
|
||||||
* @param defaultLang The default language to use if no language is specified. The default language isn't necessarily
|
* @param defaultLang The default language to use if no language is specified. The default language isn't necessarily
|
||||||
* the one defined by {@link Script#DEFAULT_SCRIPT_LANG} due to backwards compatiblity requirements
|
* the one defined by {@link Script#DEFAULT_SCRIPT_LANG} due to backwards compatiblity requirements
|
||||||
* related to stored queries using previously default languauges.
|
* related to stored queries using previously default languauges.
|
||||||
* @return The parsed {@link Script}.
|
* @return The parsed {@link Script}.
|
||||||
*/
|
*/
|
||||||
public static Script parse(XContentParser parser, ParseFieldMatcher matcher, String defaultLang) throws IOException {
|
public static Script parse(XContentParser parser, String defaultLang) throws IOException {
|
||||||
Objects.requireNonNull(defaultLang);
|
Objects.requireNonNull(defaultLang);
|
||||||
|
|
||||||
Token token = parser.currentToken();
|
Token token = parser.currentToken();
|
||||||
|
@ -319,7 +307,7 @@ public final class Script implements ToXContent, Writeable {
|
||||||
return new Script(ScriptType.INLINE, defaultLang, parser.text(), Collections.emptyMap());
|
return new Script(ScriptType.INLINE, defaultLang, parser.text(), Collections.emptyMap());
|
||||||
}
|
}
|
||||||
|
|
||||||
return PARSER.apply(parser, () -> matcher).build(defaultLang);
|
return PARSER.apply(parser, null).build(defaultLang);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final ScriptType type;
|
private final ScriptType type;
|
||||||
|
|
|
@ -158,7 +158,7 @@ public class ScriptHeuristic extends SignificanceHeuristic {
|
||||||
currentFieldName = parser.currentName();
|
currentFieldName = parser.currentName();
|
||||||
} else {
|
} else {
|
||||||
if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
script = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else {
|
} else {
|
||||||
throw new ElasticsearchParseException("failed to parse [{}] significance heuristic. unknown object [{}]", heuristicName, currentFieldName);
|
throw new ElasticsearchParseException("failed to parse [{}] significance heuristic. unknown object [{}]", heuristicName, currentFieldName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,6 @@ import org.elasticsearch.search.aggregations.InternalAggregation.Type;
|
||||||
import org.elasticsearch.search.internal.SearchContext;
|
import org.elasticsearch.search.internal.SearchContext;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
@ -255,13 +254,13 @@ public class ScriptedMetricAggregationBuilder extends AbstractAggregationBuilder
|
||||||
currentFieldName = parser.currentName();
|
currentFieldName = parser.currentName();
|
||||||
} else if (token == XContentParser.Token.START_OBJECT || token == XContentParser.Token.VALUE_STRING) {
|
} else if (token == XContentParser.Token.START_OBJECT || token == XContentParser.Token.VALUE_STRING) {
|
||||||
if (INIT_SCRIPT_FIELD.match(currentFieldName)) {
|
if (INIT_SCRIPT_FIELD.match(currentFieldName)) {
|
||||||
initScript = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
initScript = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else if (MAP_SCRIPT_FIELD.match(currentFieldName)) {
|
} else if (MAP_SCRIPT_FIELD.match(currentFieldName)) {
|
||||||
mapScript = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
mapScript = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else if (COMBINE_SCRIPT_FIELD.match(currentFieldName)) {
|
} else if (COMBINE_SCRIPT_FIELD.match(currentFieldName)) {
|
||||||
combineScript = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
combineScript = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else if (REDUCE_SCRIPT_FIELD.match(currentFieldName)) {
|
} else if (REDUCE_SCRIPT_FIELD.match(currentFieldName)) {
|
||||||
reduceScript = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
reduceScript = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else if (token == XContentParser.Token.START_OBJECT &&
|
} else if (token == XContentParser.Token.START_OBJECT &&
|
||||||
PARAMS_FIELD.match(currentFieldName)) {
|
PARAMS_FIELD.match(currentFieldName)) {
|
||||||
params = parser.map();
|
params = parser.map();
|
||||||
|
|
|
@ -642,7 +642,7 @@ public class TopHitsAggregationBuilder extends AbstractAggregationBuilder<TopHit
|
||||||
currentFieldName = parser.currentName();
|
currentFieldName = parser.currentName();
|
||||||
} else if (token.isValue()) {
|
} else if (token.isValue()) {
|
||||||
if (SearchSourceBuilder.SCRIPT_FIELD.match(currentFieldName)) {
|
if (SearchSourceBuilder.SCRIPT_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
script = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else if (SearchSourceBuilder.IGNORE_FAILURE_FIELD.match(currentFieldName)) {
|
} else if (SearchSourceBuilder.IGNORE_FAILURE_FIELD.match(currentFieldName)) {
|
||||||
ignoreFailure = parser.booleanValue();
|
ignoreFailure = parser.booleanValue();
|
||||||
} else {
|
} else {
|
||||||
|
@ -652,7 +652,7 @@ public class TopHitsAggregationBuilder extends AbstractAggregationBuilder<TopHit
|
||||||
}
|
}
|
||||||
} else if (token == XContentParser.Token.START_OBJECT) {
|
} else if (token == XContentParser.Token.START_OBJECT) {
|
||||||
if (SearchSourceBuilder.SCRIPT_FIELD.match(currentFieldName)) {
|
if (SearchSourceBuilder.SCRIPT_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
script = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else {
|
} else {
|
||||||
throw new ParsingException(parser.getTokenLocation(),
|
throw new ParsingException(parser.getTokenLocation(),
|
||||||
"Unknown key for a " + token + " in [" + currentFieldName + "].",
|
"Unknown key for a " + token + " in [" + currentFieldName + "].",
|
||||||
|
|
|
@ -178,7 +178,7 @@ public class BucketScriptPipelineAggregationBuilder extends AbstractPipelineAggr
|
||||||
} else if (GAP_POLICY.match(currentFieldName)) {
|
} else if (GAP_POLICY.match(currentFieldName)) {
|
||||||
gapPolicy = GapPolicy.parse(context, parser.text(), parser.getTokenLocation());
|
gapPolicy = GapPolicy.parse(context, parser.text(), parser.getTokenLocation());
|
||||||
} else if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
} else if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
script = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else {
|
} else {
|
||||||
throw new ParsingException(parser.getTokenLocation(),
|
throw new ParsingException(parser.getTokenLocation(),
|
||||||
"Unknown key for a " + token + " in [" + reducerName + "]: [" + currentFieldName + "].");
|
"Unknown key for a " + token + " in [" + reducerName + "]: [" + currentFieldName + "].");
|
||||||
|
@ -200,7 +200,7 @@ public class BucketScriptPipelineAggregationBuilder extends AbstractPipelineAggr
|
||||||
}
|
}
|
||||||
} else if (token == XContentParser.Token.START_OBJECT) {
|
} else if (token == XContentParser.Token.START_OBJECT) {
|
||||||
if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
script = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else if (BUCKETS_PATH.match(currentFieldName)) {
|
} else if (BUCKETS_PATH.match(currentFieldName)) {
|
||||||
Map<String, Object> map = parser.map();
|
Map<String, Object> map = parser.map();
|
||||||
bucketsPathsMap = new HashMap<>();
|
bucketsPathsMap = new HashMap<>();
|
||||||
|
|
|
@ -141,7 +141,7 @@ public class BucketSelectorPipelineAggregationBuilder extends AbstractPipelineAg
|
||||||
} else if (GAP_POLICY.match(currentFieldName)) {
|
} else if (GAP_POLICY.match(currentFieldName)) {
|
||||||
gapPolicy = GapPolicy.parse(context, parser.text(), parser.getTokenLocation());
|
gapPolicy = GapPolicy.parse(context, parser.text(), parser.getTokenLocation());
|
||||||
} else if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
} else if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
script = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else {
|
} else {
|
||||||
throw new ParsingException(parser.getTokenLocation(),
|
throw new ParsingException(parser.getTokenLocation(),
|
||||||
"Unknown key for a " + token + " in [" + reducerName + "]: [" + currentFieldName + "].");
|
"Unknown key for a " + token + " in [" + reducerName + "]: [" + currentFieldName + "].");
|
||||||
|
@ -163,7 +163,7 @@ public class BucketSelectorPipelineAggregationBuilder extends AbstractPipelineAg
|
||||||
}
|
}
|
||||||
} else if (token == XContentParser.Token.START_OBJECT) {
|
} else if (token == XContentParser.Token.START_OBJECT) {
|
||||||
if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
if (Script.SCRIPT_PARSE_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
script = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else if (BUCKETS_PATH.match(currentFieldName)) {
|
} else if (BUCKETS_PATH.match(currentFieldName)) {
|
||||||
Map<String, Object> map = parser.map();
|
Map<String, Object> map = parser.map();
|
||||||
bucketsPathsMap = new HashMap<>();
|
bucketsPathsMap = new HashMap<>();
|
||||||
|
|
|
@ -35,30 +35,30 @@ public final class ValuesSourceParserHelper {
|
||||||
public static void declareAnyFields(
|
public static void declareAnyFields(
|
||||||
ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource, ?>, QueryParseContext> objectParser,
|
ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource, ?>, QueryParseContext> objectParser,
|
||||||
boolean scriptable, boolean formattable) {
|
boolean scriptable, boolean formattable) {
|
||||||
declareFields(objectParser, scriptable, formattable, false, ValuesSourceType.ANY, null);
|
declareFields(objectParser, scriptable, formattable, false, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void declareNumericFields(
|
public static void declareNumericFields(
|
||||||
ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource.Numeric, ?>, QueryParseContext> objectParser,
|
ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource.Numeric, ?>, QueryParseContext> objectParser,
|
||||||
boolean scriptable, boolean formattable, boolean timezoneAware) {
|
boolean scriptable, boolean formattable, boolean timezoneAware) {
|
||||||
declareFields(objectParser, scriptable, formattable, timezoneAware, ValuesSourceType.NUMERIC, ValueType.NUMERIC);
|
declareFields(objectParser, scriptable, formattable, timezoneAware, ValueType.NUMERIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void declareBytesFields(
|
public static void declareBytesFields(
|
||||||
ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource.Bytes, ?>, QueryParseContext> objectParser,
|
ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource.Bytes, ?>, QueryParseContext> objectParser,
|
||||||
boolean scriptable, boolean formattable) {
|
boolean scriptable, boolean formattable) {
|
||||||
declareFields(objectParser, scriptable, formattable, false, ValuesSourceType.BYTES, ValueType.STRING);
|
declareFields(objectParser, scriptable, formattable, false, ValueType.STRING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void declareGeoFields(
|
public static void declareGeoFields(
|
||||||
ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource.GeoPoint, ?>, QueryParseContext> objectParser,
|
ObjectParser<? extends ValuesSourceAggregationBuilder<ValuesSource.GeoPoint, ?>, QueryParseContext> objectParser,
|
||||||
boolean scriptable, boolean formattable) {
|
boolean scriptable, boolean formattable) {
|
||||||
declareFields(objectParser, scriptable, formattable, false, ValuesSourceType.GEOPOINT, ValueType.GEOPOINT);
|
declareFields(objectParser, scriptable, formattable, false, ValueType.GEOPOINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static <VS extends ValuesSource> void declareFields(
|
private static <VS extends ValuesSource> void declareFields(
|
||||||
ObjectParser<? extends ValuesSourceAggregationBuilder<VS, ?>, QueryParseContext> objectParser,
|
ObjectParser<? extends ValuesSourceAggregationBuilder<VS, ?>, QueryParseContext> objectParser,
|
||||||
boolean scriptable, boolean formattable, boolean timezoneAware, ValuesSourceType valuesSourceType, ValueType targetValueType) {
|
boolean scriptable, boolean formattable, boolean timezoneAware, ValueType targetValueType) {
|
||||||
|
|
||||||
|
|
||||||
objectParser.declareField(ValuesSourceAggregationBuilder::field, XContentParser::text,
|
objectParser.declareField(ValuesSourceAggregationBuilder::field, XContentParser::text,
|
||||||
|
@ -84,7 +84,8 @@ public final class ValuesSourceParserHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scriptable) {
|
if (scriptable) {
|
||||||
objectParser.declareField(ValuesSourceAggregationBuilder::script, org.elasticsearch.script.Script::parse,
|
objectParser.declareField(ValuesSourceAggregationBuilder::script,
|
||||||
|
(parser, context) -> Script.parse(parser, context.getDefaultScriptLanguage()),
|
||||||
Script.SCRIPT_PARSE_FIELD, ObjectParser.ValueType.OBJECT_OR_STRING);
|
Script.SCRIPT_PARSE_FIELD, ObjectParser.ValueType.OBJECT_OR_STRING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1341,7 +1341,7 @@ public final class SearchSourceBuilder extends ToXContentToBytes implements Writ
|
||||||
currentFieldName = parser.currentName();
|
currentFieldName = parser.currentName();
|
||||||
} else if (token.isValue()) {
|
} else if (token.isValue()) {
|
||||||
if (SCRIPT_FIELD.match(currentFieldName)) {
|
if (SCRIPT_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
script = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else if (IGNORE_FAILURE_FIELD.match(currentFieldName)) {
|
} else if (IGNORE_FAILURE_FIELD.match(currentFieldName)) {
|
||||||
ignoreFailure = parser.booleanValue();
|
ignoreFailure = parser.booleanValue();
|
||||||
} else {
|
} else {
|
||||||
|
@ -1350,7 +1350,7 @@ public final class SearchSourceBuilder extends ToXContentToBytes implements Writ
|
||||||
}
|
}
|
||||||
} else if (token == XContentParser.Token.START_OBJECT) {
|
} else if (token == XContentParser.Token.START_OBJECT) {
|
||||||
if (SCRIPT_FIELD.match(currentFieldName)) {
|
if (SCRIPT_FIELD.match(currentFieldName)) {
|
||||||
script = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage());
|
script = Script.parse(parser, context.getDefaultScriptLanguage());
|
||||||
} else {
|
} else {
|
||||||
throw new ParsingException(parser.getTokenLocation(), "Unknown key for a " + token + " in [" + currentFieldName
|
throw new ParsingException(parser.getTokenLocation(), "Unknown key for a " + token + " in [" + currentFieldName
|
||||||
+ "].", parser.getTokenLocation());
|
+ "].", parser.getTokenLocation());
|
||||||
|
|
|
@ -216,7 +216,8 @@ public class ScriptSortBuilder extends SortBuilder<ScriptSortBuilder> {
|
||||||
a -> new ScriptSortBuilder((Script) a[0], (ScriptSortType) a[1]));
|
a -> new ScriptSortBuilder((Script) a[0], (ScriptSortType) a[1]));
|
||||||
|
|
||||||
static {
|
static {
|
||||||
PARSER.declareField(constructorArg(), Script::parse, Script.SCRIPT_PARSE_FIELD, ValueType.OBJECT_OR_STRING);
|
PARSER.declareField(constructorArg(), (parser, context) -> Script.parse(parser, context.getDefaultScriptLanguage()),
|
||||||
|
Script.SCRIPT_PARSE_FIELD, ValueType.OBJECT_OR_STRING);
|
||||||
PARSER.declareField(constructorArg(), p -> ScriptSortType.fromString(p.text()), TYPE_FIELD, ValueType.STRING);
|
PARSER.declareField(constructorArg(), p -> ScriptSortType.fromString(p.text()), TYPE_FIELD, ValueType.STRING);
|
||||||
PARSER.declareString((b, v) -> b.order(SortOrder.fromString(v)), ORDER_FIELD);
|
PARSER.declareString((b, v) -> b.order(SortOrder.fromString(v)), ORDER_FIELD);
|
||||||
PARSER.declareString((b, v) -> b.sortMode(SortMode.fromString(v)), SORTMODE_FIELD);
|
PARSER.declareString((b, v) -> b.sortMode(SortMode.fromString(v)), SORTMODE_FIELD);
|
||||||
|
|
|
@ -567,7 +567,7 @@ public class PhraseSuggestionBuilder extends SuggestionBuilder<PhraseSuggestionB
|
||||||
"suggester[phrase][collate] query already set, doesn't support additional ["
|
"suggester[phrase][collate] query already set, doesn't support additional ["
|
||||||
+ currentFieldName + "]");
|
+ currentFieldName + "]");
|
||||||
}
|
}
|
||||||
Script template = Script.parse(parser, parseFieldMatcher, "mustache");
|
Script template = Script.parse(parser, "mustache");
|
||||||
tmpSuggestion.collateQuery(template);
|
tmpSuggestion.collateQuery(template);
|
||||||
} else if (PhraseSuggestionBuilder.COLLATE_QUERY_PARAMS.match(currentFieldName)) {
|
} else if (PhraseSuggestionBuilder.COLLATE_QUERY_PARAMS.match(currentFieldName)) {
|
||||||
tmpSuggestion.collateParams(parser.map());
|
tmpSuggestion.collateParams(parser.map());
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
|
|
||||||
package org.elasticsearch.script;
|
package org.elasticsearch.script;
|
||||||
|
|
||||||
import org.elasticsearch.common.ParseFieldMatcher;
|
|
||||||
import org.elasticsearch.common.io.stream.InputStreamStreamInput;
|
import org.elasticsearch.common.io.stream.InputStreamStreamInput;
|
||||||
import org.elasticsearch.common.io.stream.OutputStreamStreamOutput;
|
import org.elasticsearch.common.io.stream.OutputStreamStreamOutput;
|
||||||
import org.elasticsearch.common.xcontent.ToXContent;
|
import org.elasticsearch.common.xcontent.ToXContent;
|
||||||
|
@ -45,7 +44,7 @@ public class ScriptTests extends ESTestCase {
|
||||||
try (XContentBuilder builder = XContentBuilder.builder(xContent)) {
|
try (XContentBuilder builder = XContentBuilder.builder(xContent)) {
|
||||||
expectedScript.toXContent(builder, ToXContent.EMPTY_PARAMS);
|
expectedScript.toXContent(builder, ToXContent.EMPTY_PARAMS);
|
||||||
try (XContentParser parser = createParser(builder)) {
|
try (XContentParser parser = createParser(builder)) {
|
||||||
Script actualScript = Script.parse(parser, ParseFieldMatcher.STRICT);
|
Script actualScript = Script.parse(parser);
|
||||||
assertThat(actualScript, equalTo(expectedScript));
|
assertThat(actualScript, equalTo(expectedScript));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,7 +137,7 @@ public class TemplateQueryBuilder extends AbstractQueryBuilder<TemplateQueryBuil
|
||||||
*/
|
*/
|
||||||
public static TemplateQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException {
|
public static TemplateQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException {
|
||||||
XContentParser parser = parseContext.parser();
|
XContentParser parser = parseContext.parser();
|
||||||
Script template = Script.parse(parser, parseContext.getParseFieldMatcher(), "mustache");
|
Script template = Script.parse(parser, Script.DEFAULT_TEMPLATE_LANG);
|
||||||
return new TemplateQueryBuilder(template);
|
return new TemplateQueryBuilder(template);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,8 +19,6 @@
|
||||||
package org.elasticsearch.script.mustache;
|
package org.elasticsearch.script.mustache;
|
||||||
|
|
||||||
import com.github.mustachejava.MustacheFactory;
|
import com.github.mustachejava.MustacheFactory;
|
||||||
|
|
||||||
import org.elasticsearch.common.ParseFieldMatcher;
|
|
||||||
import org.elasticsearch.common.bytes.BytesReference;
|
import org.elasticsearch.common.bytes.BytesReference;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.common.xcontent.XContentParser;
|
import org.elasticsearch.common.xcontent.XContentParser;
|
||||||
|
@ -87,7 +85,7 @@ public class MustacheScriptEngineTests extends ESTestCase {
|
||||||
+ "\"params\":{\"template\":\"all\"}"
|
+ "\"params\":{\"template\":\"all\"}"
|
||||||
+ "}";
|
+ "}";
|
||||||
XContentParser parser = createParser(JsonXContent.jsonXContent, templateString);
|
XContentParser parser = createParser(JsonXContent.jsonXContent, templateString);
|
||||||
Script script = Script.parse(parser, ParseFieldMatcher.EMPTY);
|
Script script = Script.parse(parser);
|
||||||
CompiledScript compiledScript = new CompiledScript(ScriptType.INLINE, null, "mustache",
|
CompiledScript compiledScript = new CompiledScript(ScriptType.INLINE, null, "mustache",
|
||||||
qe.compile(null, script.getIdOrCode(), Collections.emptyMap()));
|
qe.compile(null, script.getIdOrCode(), Collections.emptyMap()));
|
||||||
ExecutableScript executableScript = qe.executable(compiledScript, script.getParams());
|
ExecutableScript executableScript = qe.executable(compiledScript, script.getParams());
|
||||||
|
@ -103,7 +101,7 @@ public class MustacheScriptEngineTests extends ESTestCase {
|
||||||
+ " }"
|
+ " }"
|
||||||
+ "}";
|
+ "}";
|
||||||
XContentParser parser = createParser(JsonXContent.jsonXContent, templateString);
|
XContentParser parser = createParser(JsonXContent.jsonXContent, templateString);
|
||||||
Script script = Script.parse(parser, ParseFieldMatcher.EMPTY);
|
Script script = Script.parse(parser);
|
||||||
CompiledScript compiledScript = new CompiledScript(ScriptType.INLINE, null, "mustache",
|
CompiledScript compiledScript = new CompiledScript(ScriptType.INLINE, null, "mustache",
|
||||||
qe.compile(null, script.getIdOrCode(), Collections.emptyMap()));
|
qe.compile(null, script.getIdOrCode(), Collections.emptyMap()));
|
||||||
ExecutableScript executableScript = qe.executable(compiledScript, script.getParams());
|
ExecutableScript executableScript = qe.executable(compiledScript, script.getParams());
|
||||||
|
|
|
@ -95,10 +95,10 @@ public class RestReindexAction extends AbstractBaseReindexRestHandler<ReindexReq
|
||||||
destParser.declareString(IndexRequest::setPipeline, new ParseField("pipeline"));
|
destParser.declareString(IndexRequest::setPipeline, new ParseField("pipeline"));
|
||||||
destParser.declareString((s, i) -> s.versionType(VersionType.fromString(i)), new ParseField("version_type"));
|
destParser.declareString((s, i) -> s.versionType(VersionType.fromString(i)), new ParseField("version_type"));
|
||||||
|
|
||||||
PARSER.declareField((p, v, c) -> sourceParser.parse(p, v, c), new ParseField("source"), ValueType.OBJECT);
|
PARSER.declareField(sourceParser::parse, new ParseField("source"), ValueType.OBJECT);
|
||||||
PARSER.declareField((p, v, c) -> destParser.parse(p, v.getDestination(), c), new ParseField("dest"), ValueType.OBJECT);
|
PARSER.declareField((p, v, c) -> destParser.parse(p, v.getDestination(), c), new ParseField("dest"), ValueType.OBJECT);
|
||||||
PARSER.declareInt(ReindexRequest::setSize, new ParseField("size"));
|
PARSER.declareInt(ReindexRequest::setSize, new ParseField("size"));
|
||||||
PARSER.declareField((p, v, c) -> v.setScript(Script.parse(p, c.getParseFieldMatcher())), new ParseField("script"),
|
PARSER.declareField((p, v, c) -> v.setScript(Script.parse(p)), new ParseField("script"),
|
||||||
ValueType.OBJECT);
|
ValueType.OBJECT);
|
||||||
PARSER.declareString(ReindexRequest::setConflicts, new ParseField("conflicts"));
|
PARSER.declareString(ReindexRequest::setConflicts, new ParseField("conflicts"));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue