看,灰机...

elasticsearch利用script获取nested类型数据并计算怎么实现?

Elasticsearch | 作者 cxy | 发布于2019年07月30日 | 阅读数:7932

字段的mapping:
 "langRowNum" : {
"type" : "nested",
"properties" : {
"language" : {
"type" : "integer"
},
"num" : {
"type" : "integer"
}
}
},
字段数据:
"langRowNum" : [
{
"num" : 350,
"language" : 0
},
{
"num" : 200,
"language" : 1
},
{
"num" : 100,
"language" : 2
}
],
我想查询的时候利用脚本重新计算一个值返回,但是获取不到
langRowNum数组的值doc['langRowNum'] 可以下下标吗?还是必须遍历?求指点 谢谢
已邀请:

bellengao - 博客: https://www.jianshu.com/u/e0088e3e2127

赞同来自: cxy

使用script field:https://www.elastic.co/guide/e ... .html
通过doc[]只能获取简单类型的字段

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

省略部分参考楼上script_field的用法。
doc['my_field'].value 和
params['_source']['my_field']. 的用法。
后者会加载到内存呢,会更快。

{
"nested": {
"path": "companies",
"score_mode": "sum",
"query": {}.
"inner_hits": {
"script_fields": {
"overlap" : {
"script": {
"source": "................................",
"params": {
"from": "2012-01-01",
"to": "2015-06-30"
}
}
}
}
}
}
}

要回复问题请先登录注册