MST

星途 面试题库

面试题:ElasticSearch脚本字段基础应用

假设在ElasticSearch中有一个索引存储商品信息,包含价格字段。现在要求通过脚本字段,在搜索时计算每个商品打8折后的价格并展示,简述实现步骤及所需的脚本代码。
17.1万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试
  1. 实现步骤
    • 在Elasticsearch的搜索请求中,使用script_fields参数来定义脚本字段。
    • 编写脚本计算价格打8折后的结果。
  2. 脚本代码
{
    "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默认的脚本语言。