Scripted Fields
Scripted Fields(脚本字段)允许用户在查询时动态计算字段值,而无需预先索引这些字段,增强了数据的灵活性和查询能力。
1. Scripted Fields 概述
- 利用 Painless 脚本动态生成字段
- 可用于排序、过滤和聚合
- 不修改原始数据,仅在查询时计算
2. 示例:基于两个字段计算新字段
GET /my-index/_search
{
"query": {
"match_all": {}
},
"script_fields": {
"discounted_price": {
"script": {
"source": "doc['price'].value * 0.9",
"lang": "painless"
}
}
}
}
`
3. 结合 Scripted Fields 排序
GET /my-index/_search
{
"query": {
"match_all": {}
},
"sort": {
"_script": {
"type": "number",
"script": {
"source": "doc['price'].value * doc['popularity'].value",
"lang": "painless"
},
"order": "desc"
}
}
}
4. 注意事项
- 脚本字段计算在查询时执行,可能影响性能
- 尽量避免复杂计算,推荐缓存常用脚本
- 确保字段存在并可用,避免运行时错误
使用 Scripted Fields,可以实现更灵活的查询和排序需求,提升 Elasticsearch 的应用深度。
相关内容
- 定义与用途 本章介绍 Elasticsearch 的定义、核心功能与适用场景,帮助读者理解它为何成为现代搜索与日志分析的首选解决方案。
- 使用场景 本章总结 Elasticsearch 在全文搜索、日志分析、监控告警、推荐系统等领域的典型应用场景,助力理解其强大用途。
- 核心概念简介 本章概览 Elasticsearch 的核心构成,包括索引、文档、映射、节点、集群等关键概念,为后续使用和架构设计打下基础。
- 本地安装 本章介绍如何在本地环境中安装 Elasticsearch,适配 Windows、macOS 和 Linux 系统,便于开发测试与入门学习。
- Docker 安装 本章讲解如何通过 Docker 安装和运行 Elasticsearch,适合开发者快速搭建测试环境并集成至容器化工作流中。
- 与 Kibana 一起部署 本章介绍如何将 Elasticsearch 与 Kibana 一起部署,使用 Docker Compose 快速构建可视化分析平台,适合开发与测试环境使用。