【Elasticsearch】runtime_mappings搜索请求中定义运行时字段

在 Elasticsearch 中,在搜索请求中定义运行时字段(Runtime Fields)是一种强大的功能,允许用户在查询时动态添加和计算字段,而无需预先在索引映射中定义这些字段。这种方式提供了极大的灵活性,尤其是在处理动态数据结构或需要临时计算字段值的场景中。

运行时字段的核心概念

运行时字段基于“读时模式(Schema on Read)”的概念,允许用户在查询时定义字段的映射和计算逻辑。与传统的索引字段不同,运行时字段不会被存储或索引,因此不会增加存储成本。它们仅在查询执行时动态计算,并可用于查询、聚合和排序。

在搜索请求中定义运行时字段

运行时字段可以通过在搜索请求中添加`runtime_mappings`部分来定义。其语法与在索引映射中定义运行时字段的语法相同。例如:

```json

GET my-index-000001/_search

{

  "runtime_mappings": {

    "day_of_week": {

      "type": "keyword",

      "script": {

        "source": "emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ENGLISH))"

      }

    }

  },

  "query": {

    "match_all": {}

  },

  "aggs": {

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值