1.腳本的語法格式
"script": {
"lang": "...",
"source" | "id": "...",
"params": { ... }
}
lang:表示使用的語言
source:表示內聯腳本
id:表示引用存儲腳本
params:自定義腳本參數
2.存儲腳本
首先使用/_scripts/{id}創建存儲腳本
POST _scripts/myscriptid
{
"script": {
"lang": "painless",
"source": "Math.log(_score * 2) + params.my_modifier"
}
}
可以使用GET _scripts/myscriptid 查看
具體使用的方式
GET _search
{
"query": {
"script": {
"script": {
"id": "myscriptid",
"params": {
"my_modifier": 2
}
}
}
}
}
刪除腳本
DELETE _scripts/myscriptid
3.腳本緩存
默認情況下,所有腳本都被緩存,因此只有在更新發生時才需要重新編譯它們,默認情況下,腳本沒有基於時間的過期,但你可以使用script.cache.expire
設置更改此行爲,你可以使用script.cache.max_size
設置配置此緩存的大小,默認情況下,緩存大小爲100
。
存儲腳本的大小限制爲65,535字節,這可以通過設置script.max_size_in_bytes
設置來增加軟限制來更改,但如果腳本非常大,則應考慮原生腳本引擎。