ELK,萌萌哒

字段类型转为long之后依然无法进行数学运算

Kibana | 作者 xshaw | 发布于2020年03月16日 | 阅读数:2485

我已经新建了一个索引并将原本为txt格式的字段改为long,然后将原索引的数据导入了新索引,但我想将新索引中的一个数据通过脚本更新时,他依然报错"Cannot apply [-] operation to types [java.lang.String] and [java.lang.String].",在管理中也能看到field已经转为number格式了。我用的kibana和elasticsearch的版本都是目前的版本7.6
Capture.PNG Capture2.PNG
已邀请:

liuxg - Elastic

赞同来自:

你试一下命令
 
GET tmt36_1 
 
看看你的index的mapping是啥样的?
你上面修改的是index pattern的mapping。

Ombres

赞同来自:

ctx._source这种方式取的是原值,它会解析你的原json,我想你的 json肯定是类似这样的
{
"field1": "1",
"field2": "2"
}
上面这种的取出来就是String,下面的用起来就没问题了
{
"field1": 1,
"field2": 2
}

byx313 - BLOG:https://www.jianshu.com/u/43fd06f9589c

赞同来自:

字段mapping那边加上"coerce:false”,避免脏数据

tacsklet - 公司有用到es

赞同来自:

需要在写入的时候注意,但是针对目前的情况下可以对有问题的数据转换一下数据类型,然后再进行计算。Float.valueOf()可以试试。

要回复问题请先登录注册