脚本 Scripting
使用scripting,您可以在Elasticsearch中自定义评分、自定义文本相关度、自定义过滤、自定义聚合析等。
内置scripting的语言支持
语言 | 沙盒 | 用途 |
---|---|---|
painless | yes | 通用 |
expression | yes | 快速自定义排序 |
mustache | yes | templates |
用法
"script": {
"lang": "...",
"source" | "id": "...",
"params": { ... }
}
- lang: 脚本使用的语言,默认为painless。
- source: 脚本本身,可以指定为 inline script 或已存储脚本的id。
- params: 传递到脚本中的参数。
例如,在搜索请求中使用以下脚本返回mapping中未定义的字段script_feild
:
PUT my_index/_doc/1
{
"my_field": 5
}
GET my_index/_search
{
"script_fields": {
"my_doubled_field": {
"script": {
"lang": "expression",
"source": "doc['my_field'] * multiplier",
"params": {
"multiplier": 2
}
}
}
}
}