2.X/8. Breaking Changes

v2.0-10. Scripting changes

drscg 2017. 10. 14. 00:04

Scripting syntaxedit

The syntax for scripts has been made consistent across all APIs. The accepted format is as follows:

script에 대한 문법은 모든 API에 대해 일관적으로 만들어졌다. 적절한 format은 아래와 같다.

Inline/Dynamic scripts
"script": {
  "inline": "doc['foo'].value + val", 
  "lang":   "groovy", 
  "params": { "val": 3 } 
}

실행할 inline script.

script language option.

매개변수.

Indexed scripts
"script": {
  "id":     "my_script_id", 
  "lang":   "groovy", 
  "params": { "val": 3 } 
}

indexed script의 id.

script language option.

인자.

File scripts
"script": {
  "file":   "my_file", 
  "lang":   "groovy", 
  "params": { "val": 3 } 
}

.lang 확장자를 제외한 script의 file name

script language option.

인자

For example, an update request might look like this:

예를 들자면, update request는 다음과 같다.

POST my_index/my_type/1/_update
{
  "script": {
    "inline": "ctx._source.count += val",
    "params": { "val": 3 }
  },
  "upsert": {
    "count": 0
  }
}

A short syntax exists for running inline scripts in the default scripting language without any parameters:

parameter없이 기본 script language에서, inline script를 실행하기 위한 간단한 문법이 있다.

GET _search
{
  "script_fields": {
    "concat_fields": {
      "script": "doc['one'].value + ' ' + doc['two'].value"
    }
  }
}

Scripting settingsedit

The script.disable_dynamic node setting has been replaced by fine-grained script settings described in Scripting settings.

script.disable_dynamic 이라는 node 설정은 Scripting settings에서 언급했듯이, fine-grained script 설정으로 대체되었다.

Groovy scripts sandboxedit

The Groovy sandbox and related settings have been removed. Groovy is now a non-sandboxed scripting language, without any option to turn the sandbox on.

groovy sandbox와 그것과 연관된 설정은 제거되었다. 이제 groovy는 sandbox를 동작하도록, 어떠한 option도 필요 없는, non-sandboxed script language이다.

Plugins making use of scriptsedit

Plugins that make use of scripts must register their own script context through ScriptModule. Script contexts can be used as part of fine-grained settings to enable/disable scripts selectively.

script를 활용하는 plugin은 ScriptModule 을 통해 그들 자신의 script context에 등록해야 한다. script context는 script를 선택적으로 활성화/비활성화하기 위하여, fine-grained 설정의 일부로 사용될 수 있다.


'2.X > 8. Breaking Changes' 카테고리의 다른 글

v2.0-08. Aggregation changes  (0) 2017.10.14
v2.0-09. Parent/Child changes  (0) 2017.10.14
v2.0-11. Index API changes  (0) 2017.10.13
v2.0-12. Snapshot and Restore changes  (0) 2017.10.13
v2.0-13. Plugin and packaging changes  (0) 2017.10.13