es 中使用 painless 脚本
- Painless 语法与 Java 类似
相关文章:
访问field
文档的field数据存储在doc
、ctx._source
中, 是map类型的。
非text、非nested 的field 存到 doc values 列存储中, IO性能好
假设你有一个字段:”a”: 1。
- 那么doc[‘a’]返回的是[1],是一个数组。
- doc[‘a’].value返回的是1,也就是取第一个元素。
- doc[‘a’].values与doc[‘a’]表现一致,返回[1]。
特殊一点的是object类型的字段,ES底层存储时是key扁平化的,所以你应该直接这样取:
- doc[‘xxx.yyy’]
- doc[‘xxx.yyy’].value
- doc[‘xxx.yyy’].values
在查询中使用
1 | // 查 flag = '00000' 的 |
更新时使用
1 | POST /_update_by_query |
删除时使用
1 | POST /_delete_by_query |