我正在為 OpenSearch(ElasticSearch 的分支)撰寫一些排序腳本。腳本環境定義了一些全域常量,例如doc,它們在腳本的頂層可用,但顯然不在函式定義中。
def getPrice() {
return doc["price"]; // compile error: cannot resolve symbol [doc]
}
int price = doc["price"]; // this works
有人可以指出我準確解釋全域變數在何時何地可用的檔案嗎?是否有任何方法可以訪問doc函式內部,例如添加名稱空間前綴或其他東西?(顯然,我可以將它作為函式引數傳遞,但我只是想看看這是否真的有必要。)
uj5u.com熱心網友回復:
Opensearch 腳本也基于Painless。
無痛函式沒有很好的檔案記錄,但它們被設計為完全獨立于腳本主體,因此函式應該處理的任何內容都必須作為引數傳遞。
def getPrice(Map document) {
return document["price"];
}
int price = getPrice(doc);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/413760.html
標籤:
