Elasticsearch 基础教程

Elasticsearch 高级教程

Elasticsearch 插件

Elasticsearch 笔记

es(Elasticsearch)painless 脚本获取文档(document)的字段值

Elasticsearch 脚本 Elasticsearch 脚本


Elasticsearch(es)大多数脚本都围绕指定文档字段数据来使用,可以 doc['field_name'] 形式来访问文档内指定字段数据。值得注意的是,只针对简单的值生效(数值类型字段或者不分词字段)。

获取普通字段的值

这里普通字段值只的是不分词的字段类型,如数值、keyword 类型、数组等。

假设有 status 和 type 两个字段,status 对应单个值为 1,type 字段对应数值,为 [6 , 8],取值有如下几种 case:

  1. doc['field_name'] 形式返回数组;

    # 返回数组 [1]
    doc['status']
    
    # 返回数组 [6, 8]
    doc['type']
  2. doc['field_name'].value 形式返回第一个元素;

    # 返回第一个元素 1
    doc['status'].value
    
    # 返回第一个元素 6
    doc['type'].value
  3. doc['field_name'].values 形式和 doc['field_name'] 形式一样返回数组;

    # 返回数组 [1]
    doc['status'].values
    
    # 返回数组 [6, 8]
    doc['type'].values