elasticsearch 如何使用Kibana脚本字段在嵌套字段中获取值?,elasticsearch,kibana,elastic-stack,calculated-columns,elasticsearch,Kibana,Elastic Stack,Calculated Columns" /> elasticsearch 如何使用Kibana脚本字段在嵌套字段中获取值?,elasticsearch,kibana,elastic-stack,calculated-columns,elasticsearch,Kibana,Elastic Stack,Calculated Columns" />

elasticsearch 如何使用Kibana脚本字段在嵌套字段中获取值?

elasticsearch 如何使用Kibana脚本字段在嵌套字段中获取值?,elasticsearch,kibana,elastic-stack,calculated-columns,elasticsearch,Kibana,Elastic Stack,Calculated Columns,我不熟悉弹性堆栈。 这里,我试图获取“压力”的值,然后将其转换为数值(字符串)⇒数字)使用Kibana脚本字段。 我尝试了脚本化字段,但它对我不起作用 有什么想法吗?我真的很感谢你的支持。 我的一个数据记录如下 { “_索引”:“生产”, “\u类型”:“\u单据”, “_id”:“4570df7a0d4ec1b0e624e868a5861a0f1a9a7f6c35fdsssafafsa734fb152f4bed”, “_版本”:1, “_分数”:空, “_来源”:{ “工厂代码”:“AM-N

我不熟悉弹性堆栈。 这里,我试图获取“压力”的值,然后将其转换为数值(字符串)⇒数字)使用Kibana脚本字段。 我尝试了脚本化字段,但它对我不起作用

有什么想法吗?我真的很感谢你的支持。 我的一个数据记录如下

{
“_索引”:“生产”,
“\u类型”:“\u单据”,
“_id”:“4570df7a0d4ec1b0e624e868a5861a0f1a9a7f6c35fdsssafafsa734fb152f4bed”,
“_版本”:1,
“_分数”:空,
“_来源”:{
“工厂代码”:“AM-NY”,
“产品代码”:“STR”,
“lastupdatetime”:“2020-05-28T04:16:17.590Z”,
“@timestamp”:“2020-05-28T04:14:48.000Z”,
“大规模生产”:{
“错误代码”:空,
“设备”:“P17470110”,
“OperatorDap”:空,
“machinetime”:空,
“数量”:“1”,
“externalfilename”:空,
“errorcomment”:空,
“数据”:{
“数据”:[
{
“价值”:“45.4”,
“id”:“001”,
“名称”:“压力”
},
{
“值”:“0.45”,
“id”:“002”,
“名称”:“当前”
}
]
},
“ladderver”:空,
“eid”:空,
“setupid”:空,
“模型”:“0”,
“identificationtagid”:空,
“工作ID”:“GD606546SF0B00200040800198”,
“重用”:{
“num”:“0”
},
“注册日期”:“2020-05-28813:14:48”,
“产品”:“GD60456550B00”,
“行”:“STRS001”,
“法官”:“1”,
“cycletime”:空,
“流程代码”:“OP335”,
“注册日期”:“2020-04-28T04:14:48”,
“名称”:“批量生产”
}
},
“字段”:{
“批量生产.注册日期”:[
“2020-05-28813:14:48.000Z”
],
“@timestamp”:[
“2020-05-28T04:14:48.000Z”
],
“lastupdatetime”:[
“2020-05-28T04:16:17.590Z”
],
“注册日期”:[
“2020-05-28813:14:48.000Z”
],
“批量生产.注册UTCDATE”:[
“2020-05-28T04:14:48.000Z”
],
“注册UTCDate”:[
“2020-05-28T04:14:48.000Z”
]
},
“排序”:[
158806546548000
]

}
您可以使用Float.parseFloat(值)将字符串转换为Float

if(params._source.massproduction!=null && params._source.massproduction.datas!=null &&params._source.massproduction.datas.data.size()>0)
  {
    def data = params._source.massproduction.datas.data;
     if(data instanceof ArrayList)
     {
       for(item in data)
        {
          if(item.name=='pressure')
          {
            return  Float.parseFloat(item.value);
          }
        }
     }else
     {
        if(data.name=='pressure')
        {
          return  Float.parseFloat(data.value);
        }
     }
  }
  return 0;

问题是字符串到数字的转换?感谢您的快速回复。虽然我试过了,但它给了我以下的错误。有什么想法吗?@aspreet chahal再次感谢你。但是这次它说“lang”:“无痛的”,“由引起的”:{“类型”:“非法的参数”\u异常”,“原因”:“不能在[java.util.HashMap]上迭代”@sami88rosh我已经更新了答案,你的数据是arrayList和object@aspreet-chahal你真是太棒了。终于,一切都好了!!!!衷心感谢你。:)