mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-25 07:37:19 -04:00
Scripting: Add Field Methods
Added infrastructure to allow basic member methods in the expressions language to be called. The methods must have a signature with no arguments. Also added the following member methods for date fields (and it should be easy to add more) * getYear * getMonth * getDayOfMonth * getHourOfDay * getMinutes * getSeconds Allow fields to be accessed without using the member variable [value]. (Note that both ways can be used to access fields for back-compat.) closes #10890
This commit is contained in:
parent
d2b12e4fc2
commit
aa968f6b65
6 changed files with 268 additions and 16 deletions
|
@ -389,9 +389,23 @@ for details on what operators and functions are available.
|
|||
Variables in `expression` scripts are available to access:
|
||||
|
||||
* Single valued document fields, e.g. `doc['myfield'].value`
|
||||
* Single valued document fields can also be accessed without `.value` e.g. `doc['myfield']`
|
||||
* Parameters passed into the script, e.g. `mymodifier`
|
||||
* The current document's score, `_score` (only available when used in a `script_score`)
|
||||
|
||||
Variables in `expression` scripts that are of type `date` may use the following member methods:
|
||||
|
||||
* getYear()
|
||||
* getMonth()
|
||||
* getDayOfMonth()
|
||||
* getHourOfDay()
|
||||
* getMinutes()
|
||||
* getSeconds()
|
||||
|
||||
The following example shows the difference in years between the `date` fields date0 and date1:
|
||||
|
||||
`doc['date1'].getYear() - doc['date0'].getYear()`
|
||||
|
||||
There are a few limitations relative to other script languages:
|
||||
|
||||
* Only numeric fields may be accessed
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue