remove ParseFieldMatcher usages from Script parsing code

This commit is contained in:
javanna 2017-01-04 15:23:24 +01:00 committed by Luca Cavanna
parent 6b9a8db069
commit 6102523033
17 changed files with 39 additions and 54 deletions

View File

@ -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)) {

View File

@ -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 + "]");
} }

View File

@ -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 + "]");
} }

View File

@ -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;

View File

@ -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);
} }

View File

@ -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();

View File

@ -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 + "].",

View File

@ -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<>();

View File

@ -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<>();

View File

@ -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);
} }

View File

@ -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());

View File

@ -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);

View File

@ -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());

View File

@ -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));
} }
} }

View File

@ -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);
} }
} }

View File

@ -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());

View File

@ -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"));
} }