跳到主要内容

脚本 Scripting

使用scripting,您可以在Elasticsearch中自定义评分、自定义文本相关度、自定义过滤、自定义聚合析等。

内置scripting的语言支持

语言沙盒用途
painlessyes通用
expressionyes快速自定义排序
mustacheyestemplates

用法

  "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
}
}
}
}
}