面试题答案
一键面试- 实现步骤:
- 在Elasticsearch的搜索请求中,使用
script_fields
参数来定义脚本字段。 - 编写脚本计算价格打8折后的结果。
- 在Elasticsearch的搜索请求中,使用
- 脚本代码:
{
"query": {
"match_all": {}
},
"script_fields": {
"discounted_price": {
"script": {
"source": "doc['price'].value * 0.8",
"lang": "painless"
}
}
}
}
在上述代码中:
query
部分使用match_all
查询获取所有商品文档。script_fields
定义了一个名为discounted_price
的脚本字段。script
中的source
指定了计算逻辑,即获取文档中price
字段的值并乘以0.8,lang
指定使用Painless脚本语言,这是Elasticsearch默认的脚本语言。