script에서 필드 접근 방법은 최소 두가지가 있다. doc 문맥과 _value 이다.

(아직 일래스틱서치 공부중이므로 찾아보면 더 있을 수는 있다.)


일반적으로 일래스틱서치의 script를 사용할 때, doc라는 문맥을 사용하여 필드에 접근하는 방법이 있다. 



"script_fields" : { "test1" : { "script" : "doc['my_field_name'].value * 2" }, "test2" : { "script" : "doc['my_field_name'].value * factor", "params" : { "factor" : 2.0 } } }

출처 : https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-script-fields.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-script-fields.html


aggregation시에는 doc 문맥을 사용하지 않고, _value를 사용하는 스크립트가 있다. 


{ "aggs" : { ... "aggs" : { "daytime_return" : { "sum" : { "field" : "change", "script" : "_value * _value" } } } } }

https://www.elastic.co/guide/en/elasticsearch/reference/1.6/search-aggregations-metrics-sum-aggregation.html

Posted by '김용환'
,