OpenSearch 脚本 - 访问函数内的全局变量
OpenSearch script - accessing global variables inside a function
我正在为 OpenSearch(ElasticSearch 的分支)编写一些排序脚本。脚本环境定义了一些全局常量,例如 doc
,它们在脚本的顶层可用,但显然不在函数定义中。
def getPrice() {
return doc["price"]; // compile error: cannot resolve symbol [doc]
}
int price = doc["price"]; // this works
有人可以指点我准确解释全局变量可用的位置和时间的文档吗?有没有什么方法可以在函数内部访问 doc
,比如添加命名空间前缀之类的? (显然,我可以将它作为函数参数传入,但我只是想看看是否真的有必要。)
Opensearch 脚本也基于 Painless。
Painless 函数没有很好的文档记录,但它们被设计为 completely independent 脚本主体,因此函数应该处理的任何内容都必须作为参数传递。
def getPrice(Map document) {
return document["price"];
}
int price = getPrice(doc);
我正在为 OpenSearch(ElasticSearch 的分支)编写一些排序脚本。脚本环境定义了一些全局常量,例如 doc
,它们在脚本的顶层可用,但显然不在函数定义中。
def getPrice() {
return doc["price"]; // compile error: cannot resolve symbol [doc]
}
int price = doc["price"]; // this works
有人可以指点我准确解释全局变量可用的位置和时间的文档吗?有没有什么方法可以在函数内部访问 doc
,比如添加命名空间前缀之类的? (显然,我可以将它作为函数参数传入,但我只是想看看是否真的有必要。)
Opensearch 脚本也基于 Painless。
Painless 函数没有很好的文档记录,但它们被设计为 completely independent 脚本主体,因此函数应该处理的任何内容都必须作为参数传递。
def getPrice(Map document) {
return document["price"];
}
int price = getPrice(doc);