Package org.elasticsearch.script
Class Script
- java.lang.Object
-
- org.elasticsearch.script.Script
-
- All Implemented Interfaces:
Writeable,ToXContent,ToXContentObject
public final class Script extends java.lang.Object implements ToXContentObject, Writeable
Scriptrepresents used-defined input that can be used to compile and execute a script from theScriptServicebased on theScriptType. There are three types of scripts specified byScriptType. The following describes the expected parameters for each type of script:-
ScriptType.INLINE-
lang- specifies the language, defaults toDEFAULT_SCRIPT_LANG -
idOrCode- specifies the code to be compiled, must not benull -
options- specifies the compiler options for this script; must not benull, use an emptyMapto specify no options -
params-Mapof user-defined parameters; must not benull, use an emptyMapto specify no params
-
-
ScriptType.STORED-
lang- the language will be specified when storing the script, so this should benull -
idOrCode- specifies the id of the stored script to be looked up, must not benull -
options- compiler options will be specified when a stored script is stored, so they have no meaning here and must benull -
params-Mapof user-defined parameters; must not benull, use an emptyMapto specify no params
-
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent
ToXContent.DelegatingMapParams, ToXContent.MapParams, ToXContent.Params
-
Nested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V>
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCONTENT_TYPE_OPTIONCompiler option forXContentTypeused for templates.static java.lang.StringDEFAULT_SCRIPT_LANGThe name of the of the default scripting language.static ScriptTypeDEFAULT_SCRIPT_TYPEThe defaultScriptType.static java.lang.StringDEFAULT_TEMPLATE_LANGThe name of the default template language.static ParseFieldLANG_PARSE_FIELDStandardParseFieldfor lang on the inner level.static ParseFieldOPTIONS_PARSE_FIELDStandardParseFieldfor options on the inner level.static ParseFieldPARAMS_PARSE_FIELDStandardParseFieldfor params on the inner level.static ParseFieldSCRIPT_PARSE_FIELDStandardParseFieldfor outer level of script queries.static ParseFieldSOURCE_PARSE_FIELDStandardParseFieldfor source on the inner level.-
Fields inherited from interface org.elasticsearch.common.xcontent.ToXContent
EMPTY_PARAMS
-
-
Constructor Summary
Constructors Constructor Description Script(java.lang.String idOrCode)Constructor for simple script using the default language and default type.Script(StreamInput in)Creates aScriptread from an input stream.Script(ScriptType type, java.lang.String lang, java.lang.String idOrCode, java.util.Map<java.lang.String,java.lang.Object> params)Constructor for a script that does not need to use compiler options.Script(ScriptType type, java.lang.String lang, java.lang.String idOrCode, java.util.Map<java.lang.String,java.lang.String> options, java.util.Map<java.lang.String,java.lang.Object> params)Constructor for a script that requires the use of compiler options.
-
Method Summary
Modifier and Type Method Description booleanequals(java.lang.Object o)java.lang.StringgetIdOrCode()java.lang.StringgetLang()java.util.Map<java.lang.String,java.lang.String>getOptions()java.util.Map<java.lang.String,java.lang.Object>getParams()ScriptTypegetType()inthashCode()static Scriptparse(Settings settings)Parse the script configured in the given settings.static Scriptparse(XContentParser parser)Convenience method to callparse(XContentParser, String)using the default scripting language.static Scriptparse(XContentParser parser, java.lang.String defaultLang)This will parse XContent into aScript.java.lang.StringtoString()XContentBuildertoXContent(XContentBuilder builder, ToXContent.Params builderParams)This will build scripts into the following XContent structure:{ "<(id, source)>" : "<idOrCode>", "lang" : "<lang>", "options" : { "option0" : "<option0>", "option1" : "<option1>", ... }, "params" : { "param0" : "<param0>", "param1" : "<param1>", ... } }Example:{ "source" : "return Math.log(doc.popularity) * params.multiplier;", "lang" : "painless", "params" : { "multiplier" : 100.0 } }Note that lang, options, and params will only be included if there have been any specified.voidwriteTo(StreamOutput out)Write this into the StreamOutput.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.elasticsearch.common.xcontent.ToXContentObject
isFragment
-
-
-
-
Field Detail
-
DEFAULT_SCRIPT_LANG
public static final java.lang.String DEFAULT_SCRIPT_LANG
The name of the of the default scripting language.- See Also:
- Constant Field Values
-
DEFAULT_TEMPLATE_LANG
public static final java.lang.String DEFAULT_TEMPLATE_LANG
The name of the default template language.- See Also:
- Constant Field Values
-
DEFAULT_SCRIPT_TYPE
public static final ScriptType DEFAULT_SCRIPT_TYPE
The defaultScriptType.
-
CONTENT_TYPE_OPTION
public static final java.lang.String CONTENT_TYPE_OPTION
Compiler option forXContentTypeused for templates.- See Also:
- Constant Field Values
-
SCRIPT_PARSE_FIELD
public static final ParseField SCRIPT_PARSE_FIELD
StandardParseFieldfor outer level of script queries.
-
SOURCE_PARSE_FIELD
public static final ParseField SOURCE_PARSE_FIELD
StandardParseFieldfor source on the inner level.
-
LANG_PARSE_FIELD
public static final ParseField LANG_PARSE_FIELD
StandardParseFieldfor lang on the inner level.
-
OPTIONS_PARSE_FIELD
public static final ParseField OPTIONS_PARSE_FIELD
StandardParseFieldfor options on the inner level.
-
PARAMS_PARSE_FIELD
public static final ParseField PARAMS_PARSE_FIELD
StandardParseFieldfor params on the inner level.
-
-
Constructor Detail
-
Script
public Script(java.lang.String idOrCode)
Constructor for simple script using the default language and default type.- Parameters:
idOrCode- The id or code to use dependent on the default script type.
-
Script
public Script(ScriptType type, java.lang.String lang, java.lang.String idOrCode, java.util.Map<java.lang.String,java.lang.Object> params)
Constructor for a script that does not need to use compiler options.- Parameters:
type- TheScriptType.lang- The language for thisScriptif theScriptTypeisScriptType.INLINE. ForScriptType.STOREDscripts this should be null, but can be specified to access scripts stored as part of the stored scripts deprecated API.idOrCode- The id for thisScriptif theScriptTypeisScriptType.STORED. The code for thisScriptif theScriptTypeisScriptType.INLINE.params- The user-defined params to be bound for script execution.
-
Script
public Script(ScriptType type, java.lang.String lang, java.lang.String idOrCode, java.util.Map<java.lang.String,java.lang.String> options, java.util.Map<java.lang.String,java.lang.Object> params)
Constructor for a script that requires the use of compiler options.- Parameters:
type- TheScriptType.lang- The language for thisScriptif theScriptTypeisScriptType.INLINE. ForScriptType.STOREDscripts this should be null, but can be specified to access scripts stored as part of the stored scripts deprecated API.idOrCode- The id for thisScriptif theScriptTypeisScriptType.STORED. The code for thisScriptif theScriptTypeisScriptType.INLINE.options- The map of compiler options for thisScriptif theScriptTypeisScriptType.INLINE,nullotherwise.params- The user-defined params to be bound for script execution.
-
Script
public Script(StreamInput in) throws java.io.IOException
Creates aScriptread from an input stream.- Throws:
java.io.IOException
-
-
Method Detail
-
parse
public static Script parse(XContentParser parser) throws java.io.IOException
Convenience method to callparse(XContentParser, String)using the default scripting language.- Throws:
java.io.IOException
-
parse
public static Script parse(Settings settings)
Parse the script configured in the given settings.
-
parse
public static Script parse(XContentParser parser, java.lang.String defaultLang) throws java.io.IOException
This will parse XContent into aScript. The following formats can be parsed: The simple format defaults to anScriptType.INLINEwith no compiler options or user-defined params: Example:"return Math.log(doc.popularity) * 100;"The complex format whereScriptTypeand idOrCode are required while lang, options and params are not required.{ // Exactly one of "id" or "source" must be specified "id" : "<id>", // OR "source": "<source>", "lang" : "<lang>", "options" : { "option0" : "<option0>", "option1" : "<option1>", ... }, "params" : { "param0" : "<param0>", "param1" : "<param1>", ... } }Example:{ "source" : "return Math.log(doc.popularity) * params.multiplier", "lang" : "painless", "params" : { "multiplier" : 100.0 } }This also handles templates in a special way. If a complexly formatted query is specified as another complex JSON object the query is assumed to be a template, and the format will be preserved.{ "source" : { "query" : ... }, "lang" : "<lang>", "options" : { "option0" : "<option0>", "option1" : "<option1>", ... }, "params" : { "param0" : "<param0>", "param1" : "<param1>", ... } }- Parameters:
parser- TheXContentParserto be used.defaultLang- The default language to use if no language is specified. The default language isn't necessarily the one defined byDEFAULT_SCRIPT_LANGdue to backwards compatibility requirements related to stored queries using previously default languages.- Returns:
- The parsed
Script. - Throws:
java.io.IOException
-
writeTo
public void writeTo(StreamOutput out) throws java.io.IOException
Description copied from interface:WriteableWrite this into the StreamOutput.
-
toXContent
public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params builderParams) throws java.io.IOException
This will build scripts into the following XContent structure:{ "<(id, source)>" : "<idOrCode>", "lang" : "<lang>", "options" : { "option0" : "<option0>", "option1" : "<option1>", ... }, "params" : { "param0" : "<param0>", "param1" : "<param1>", ... } }Example:{ "source" : "return Math.log(doc.popularity) * params.multiplier;", "lang" : "painless", "params" : { "multiplier" : 100.0 } }Note that lang, options, and params will only be included if there have been any specified. This also handles templates in a special way. If theCONTENT_TYPE_OPTIONoption is provided and theScriptType.INLINEis specified then the template will be preserved as a raw field.{ "source" : { "query" : ... }, "lang" : "<lang>", "options" : { "option0" : "<option0>", "option1" : "<option1>", ... }, "params" : { "param0" : "<param0>", "param1" : "<param1>", ... } }- Specified by:
toXContentin interfaceToXContent- Throws:
java.io.IOException
-
getType
public ScriptType getType()
- Returns:
- The
ScriptTypefor thisScript.
-
getLang
public java.lang.String getLang()
- Returns:
- The language for this
Scriptif theScriptTypeisScriptType.INLINE. ForScriptType.STOREDscripts this should be null, but can be specified to access scripts stored as part of the stored scripts deprecated API.
-
getIdOrCode
public java.lang.String getIdOrCode()
- Returns:
- The id for this
Scriptif theScriptTypeisScriptType.STORED. The code for thisScriptif theScriptTypeisScriptType.INLINE.
-
getOptions
public java.util.Map<java.lang.String,java.lang.String> getOptions()
- Returns:
- The map of compiler options for this
Scriptif theScriptTypeisScriptType.INLINE,nullotherwise.
-
getParams
public java.util.Map<java.lang.String,java.lang.Object> getParams()
- Returns:
- The map of user-defined params for this
Script.
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-