Class Script

org.elasticsearch.script.Script
All Implemented Interfaces:
Writeable, org.elasticsearch.common.xcontent.ToXContent, org.elasticsearch.common.xcontent.ToXContentObject

public final class Script extends implements org.elasticsearch.common.xcontent.ToXContentObject, Writeable
Script represents used-defined input that can be used to compile and execute a script from the ScriptService based on the ScriptType. There are three types of scripts specified by ScriptType. The following describes the expected parameters for each type of script:
  • ScriptType.INLINE
    • lang - specifies the language, defaults to DEFAULT_SCRIPT_LANG
    • idOrCode - specifies the code to be compiled, must not be null
    • options - specifies the compiler options for this script; must not be null, use an empty to specify no options
    • params - of user-defined parameters; must not be null, use an empty to specify no params
  • ScriptType.STORED
    • lang - the language will be specified when storing the script, so this should be null
    • idOrCode - specifies the id of the stored script to be looked up, must not be null
    • options - compiler options will be specified when a stored script is stored, so they have no meaning here and must be null
    • params - of user-defined parameters; must not be null, use an empty to specify no params
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent

    org.elasticsearch.common.xcontent.ToXContent.DelegatingMapParams, org.elasticsearch.common.xcontent.ToXContent.MapParams, org.elasticsearch.common.xcontent.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
    Compiler option for XContentType used for templates.
    static
    The name of the of the default scripting language.
    static ScriptType
    The default ScriptType.
    static
    The name of the default template language.
    static org.elasticsearch.common.xcontent.ParseField
    Standard ParseField for lang on the inner level.
    static org.elasticsearch.common.xcontent.ParseField
    Standard ParseField for options on the inner level.
    static org.elasticsearch.common.xcontent.ParseField
    Standard ParseField for params on the inner level.
    static org.elasticsearch.common.xcontent.ParseField
    Standard ParseField for outer level of script queries.
    static org.elasticsearch.common.xcontent.ParseField
    Standard ParseField for source on the inner level.

    Fields inherited from interface org.elasticsearch.common.xcontent.ToXContent

    EMPTY_PARAMS
  • Constructor Summary

    Constructors
    Constructor
    Description
     idOrCode)
    Constructor for simple script using the default language and default type.
    Creates a Script read from an input stream.
    Script​(ScriptType type,  lang,  idOrCode, <,​> params)
    Constructor for a script that does not need to use compiler options.
    Script​(ScriptType type,  lang,  idOrCode, <,​> options, <,​> params)
    Constructor for a script that requires the use of compiler options.
  • Method Summary

    Modifier and Type
    Method
    Description
    static <T> void
    declareScript​(org.elasticsearch.common.xcontent.AbstractObjectParser<T,​?> parser, <T,​Script> consumer)
    Declare a script field on an ObjectParser with the standard name (script).
    static <T> void
    declareScript​(org.elasticsearch.common.xcontent.AbstractObjectParser<T,​?> parser, <T,​Script> consumer, org.elasticsearch.common.xcontent.ParseField parseField)
    Declare a script field on an ObjectParser.
    boolean
     o)
     
     
     
    <,​>
     
    <,​>
     
     
    int
     
    static Script
     config)
    Parse a , that can either be a or a .
    static Script
    parse​(Settings settings)
    Parse the script configured in the given settings.
    static Script
    parse​(org.elasticsearch.common.xcontent.XContentParser parser)
    Convenience method to call parse(XContentParser, String) using the default scripting language.
    static Script
    parse​(org.elasticsearch.common.xcontent.XContentParser parser,  defaultLang)
    This will parse XContent into a Script.
     
    org.elasticsearch.common.xcontent.XContentBuilder
    toXContent​(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.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.
    void
    Write this into the StreamOutput.

    Methods inherited from class java.lang.

    , , , , , , ,

    Methods inherited from interface org.elasticsearch.common.xcontent.ToXContentObject

    isFragment
  • Field Details

    • DEFAULT_SCRIPT_LANG

      public static final  DEFAULT_SCRIPT_LANG
      The name of the of the default scripting language.
      See Also:
      Constant Field Values
    • DEFAULT_TEMPLATE_LANG

      public static final  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 default ScriptType.
    • CONTENT_TYPE_OPTION

      public static final  CONTENT_TYPE_OPTION
      Compiler option for XContentType used for templates.
      See Also:
      Constant Field Values
    • SCRIPT_PARSE_FIELD

      public static final org.elasticsearch.common.xcontent.ParseField SCRIPT_PARSE_FIELD
      Standard ParseField for outer level of script queries.
    • SOURCE_PARSE_FIELD

      public static final org.elasticsearch.common.xcontent.ParseField SOURCE_PARSE_FIELD
      Standard ParseField for source on the inner level.
    • LANG_PARSE_FIELD

      public static final org.elasticsearch.common.xcontent.ParseField LANG_PARSE_FIELD
      Standard ParseField for lang on the inner level.
    • OPTIONS_PARSE_FIELD

      public static final org.elasticsearch.common.xcontent.ParseField OPTIONS_PARSE_FIELD
      Standard ParseField for options on the inner level.
    • PARAMS_PARSE_FIELD

      public static final org.elasticsearch.common.xcontent.ParseField PARAMS_PARSE_FIELD
      Standard ParseField for params on the inner level.
  • Constructor Details

    • Script

      public Script( 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,  lang,  idOrCode, <,​> params)
      Constructor for a script that does not need to use compiler options.
      Parameters:
      type - The ScriptType.
      lang - The language for this Script if the ScriptType is ScriptType.INLINE. For ScriptType.STORED scripts this should be null, but can be specified to access scripts stored as part of the stored scripts deprecated API.
      idOrCode - The id for this Script if the ScriptType is ScriptType.STORED. The code for this Script if the ScriptType is ScriptType.INLINE.
      params - The user-defined params to be bound for script execution.
    • Script

      public Script(ScriptType type,  lang,  idOrCode, <,​> options, <,​> params)
      Constructor for a script that requires the use of compiler options.
      Parameters:
      type - The ScriptType.
      lang - The language for this Script if the ScriptType is ScriptType.INLINE. For ScriptType.STORED scripts this should be null, but can be specified to access scripts stored as part of the stored scripts deprecated API.
      idOrCode - The id for this Script if the ScriptType is ScriptType.STORED. The code for this Script if the ScriptType is ScriptType.INLINE.
      options - The map of compiler options for this Script if the ScriptType is ScriptType.INLINE, null otherwise.
      params - The user-defined params to be bound for script execution.
    • Script

      public Script(StreamInput in) throws
      Creates a Script read from an input stream.
      Throws:
  • Method Details

    • declareScript

      public static <T> void declareScript(org.elasticsearch.common.xcontent.AbstractObjectParser<T,​?> parser, <T,​Script> consumer)
      Declare a script field on an ObjectParser with the standard name (script).
      Type Parameters:
      T - Whatever type the ObjectParser is parsing.
      Parameters:
      parser - the parser itself
      consumer - the consumer for the script
    • declareScript

      public static <T> void declareScript(org.elasticsearch.common.xcontent.AbstractObjectParser<T,​?> parser, <T,​Script> consumer, org.elasticsearch.common.xcontent.ParseField parseField)
      Declare a script field on an ObjectParser.
      Type Parameters:
      T - Whatever type the ObjectParser is parsing.
      Parameters:
      parser - the parser itself
      consumer - the consumer for the script
      parseField - the field name
    • parse

      public static Script parse(org.elasticsearch.common.xcontent.XContentParser parser) throws
      Convenience method to call parse(XContentParser, String) using the default scripting language.
      Throws:
    • parse

      public static Script parse(Settings settings)
      Parse the script configured in the given settings.
    • parse

      public static Script parse(org.elasticsearch.common.xcontent.XContentParser parser,  defaultLang) throws
      This will parse XContent into a Script. The following formats can be parsed: The simple format defaults to an ScriptType.INLINE with no compiler options or user-defined params: Example: "return Math.log(doc.popularity) * 100;" The complex format where ScriptType and 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 - The XContentParser to be used.
      defaultLang - The default language to use if no language is specified. The default language isn't necessarily the one defined by DEFAULT_SCRIPT_LANG due to backwards compatibility requirements related to stored queries using previously default languages.
      Returns:
      The parsed Script.
      Throws:
    • parse

      public static  config)
      Parse a , that can either be a or a .
      Parameters:
      config - The object to parse the script from.
      Returns:
      The parsed Script.
      See Also:
      parse(XContentParser, String)
    • writeTo

      public void writeTo(StreamOutput out) throws
      Description copied from interface: Writeable
      Write this into the StreamOutput.
      Specified by:
      writeTo in interface Writeable
      Throws:
    • toXContent

      public org.elasticsearch.common.xcontent.XContentBuilder toXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params builderParams) throws
      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 the CONTENT_TYPE_OPTION option is provided and the ScriptType.INLINE is 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:
      toXContent in interface org.elasticsearch.common.xcontent.ToXContent
      Throws:
    • getType

      public ScriptType getType()
      Returns:
      The ScriptType for this Script.
    • getLang

      public  getLang()
      Returns:
      The language for this Script if the ScriptType is ScriptType.INLINE. For ScriptType.STORED scripts this should be null, but can be specified to access scripts stored as part of the stored scripts deprecated API.
    • getIdOrCode

      public  getIdOrCode()
      Returns:
      The id for this Script if the ScriptType is ScriptType.STORED. The code for this Script if the ScriptType is ScriptType.INLINE.
    • getOptions

      public <,​> getOptions()
      Returns:
      The map of compiler options for this Script if the ScriptType is ScriptType.INLINE, null otherwise.
    • getParams

      public <,​> getParams()
      Returns:
      The map of user-defined params for this Script.
    • equals

      public boolean equals( o)
      Overrides:
       in class 
    • hashCode

      public int hashCode()
      Overrides:
       in class 
    • toString

      public  toString()
      Overrides:
       in class