elasticsearch/docs/reference/scripting-languages/painless/painless-literals.md
Colleen McGinnis ab5ff67bce
[docs] Add products to docset.yml (#128274)
* add products to docset.yml

* add page-level painless tags
2025-05-21 13:55:32 -05:00

3.3 KiB

mapped_pages products
https://www.elastic.co/guide/en/elasticsearch/painless/current/painless-literals.html
id
painless

Literals [painless-literals]

Use a literal to specify a value directly in an operation.

Integers [integer-literals]

Use an integer literal to specify an integer type value in decimal, octal, or hex notation of a primitive type int, long, float, or double. Use the following single letter designations to specify the primitive type: l or L for long, f or F for float, and d or D for double. If not specified, the type defaults to int. Use 0 as a prefix to specify an integer literal as octal, and use 0x or 0X as a prefix to specify an integer literal as hex.

Grammar

INTEGER: '-'? ( '0' | [1-9] [0-9]* ) [lLfFdD]?;
OCTAL:   '-'? '0' [0-7]+ [lL]?;
HEX:     '-'? '0' [xX] [0-9a-fA-F]+ [lL]?;

Examples

  • Integer literals.

    0     <1>
    0D    <2>
    1234L <3>
    -90f  <4>
    -022  <5>
    0xF2A <6>
    
    1. int 0
    2. double 0.0
    3. long 1234
    4. float -90.0
    5. int -18 in octal
    6. int 3882 in hex

Floats [float-literals]

Use a floating point literal to specify a floating point type value of a primitive type float or double. Use the following single letter designations to specify the primitive type: f or F for float and d or D for double. If not specified, the type defaults to double.

Grammar

DECIMAL: '-'? ( '0' | [1-9] [0-9]* ) (DOT [0-9]+)? EXPONENT? [fFdD]?;
EXPONENT: ( [eE] [+\-]? [0-9]+ );

Examples

  • Floating point literals.

    0.0      <1>
    1E6      <2>
    0.977777 <3>
    -126.34  <4>
    89.9F    <5>
    
    1. double 0.0
    2. double 1000000.0 in exponent notation
    3. double 0.977777
    4. double -126.34
    5. float 89.9

Strings [string-literals]

Use a string literal to specify a String type value with either single-quotes or double-quotes. Use a \" token to include a double-quote as part of a double-quoted string literal. Use a \' token to include a single-quote as part of a single-quoted string literal. Use a \\ token to include a backslash as part of any string literal.

Grammar

STRING: ( '"'  ( '\\"'  | '\\\\' | ~[\\"] )*? '"'  )
      | ( '\'' ( '\\\'' | '\\\\' | ~[\\'] )*? '\'' );

Examples

  • String literals using single-quotes.

    'single-quoted string literal'
    '\'single-quoted with escaped single-quotes\' and backslash \\'
    'single-quoted with non-escaped "double-quotes"'
    
  • String literals using double-quotes.

    "double-quoted string literal"
    "\"double-quoted with escaped double-quotes\" and backslash: \\"
    "double-quoted with non-escaped 'single-quotes'"
    

Characters [character-literals]

Character literals are not specified directly. Instead, use the cast operator to convert a String type value into a char type value.