【ElasticSearch】指令碼欄位script
阿新 • • 發佈:2021-08-25
【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 ] } } ] } }