【ElasticSearch】脚本字段script
https://www.elastic.co/guide/en/elasticsearch/reference/7.14/modules-scripting.html
可以使用script返回 一个计算值作为属性值,或者 为query计算一个自定义的分数
【例子】
插入数据
PUT my-index-000001/_doc/1
{
"my_field": 5
}
查询结果
GET my-index-000001/_search
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "my-index-000001",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"my_field" : 5
}
}
]
}
}
使用script
GET my-index-000001/_search
{
"script_fields": {
"my_doubled_field": {
"script": {
"source": "doc['my_field'].value * params['multiplier']",
"params":{
"multiplier": 2
}
}
}
}
}
返回结果
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "my-index-000001",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"fields" : {
"my_doubled_field" : [
10
]
}
}
]
}
}