gpt4 book ai didi

string - 在聚合时将字符串转换为 float ?

转载 作者:行者123 更新时间:2023-11-29 02:47:56 25 4
gpt4 key购买 nike

在指定直方图聚合时,有没有办法将字符串转换为 float ?因为我的文档中的字段是 float ,但没有被 elasticsearch 解析,所以当我尝试使用字符串字段求和时,它会抛出下一个错误。

ClassCastException[org.elasticsearch.index.fielddata.plain.PagedBytesIndexFieldData 
cannot be cast to org.elasticsearch.index.fielddata.IndexNumericFieldData]}]"

我知道我可以更改映射,但对于我的用例,如果我编写时可以指定类似“脚本:_value.tofloat()”的内容字段聚合。

这是我的代码:

{
"query" : {
"bool": {"
must": [
{"match": { "sensorId": "D14UD021808ARZC" }},
{"match": { "variableName": "CAUDAL"}}
]
}
},
"aggs" : {
"caudal_per_month" : {
"date_histogram" : {
"field" : "timestamp",
"interval" : "month"
},
"aggs": {
"totalmonth": {
"sum": {
"field": "value",
"script" : "_value*1.0"
}
}
}
}
}

最佳答案

你需要这个

{
"query": {
"bool": {
"must": [
{
"match": {
"sensorId": "D14UD021808ARZC"
}
},
{
"match": {
"variableName": "CAUDAL"
}
}
]
}
},
"aggs": {
"caudal_per_month": {
"date_histogram": {
"field": "timestamp",
"interval": "month"
},
"aggs": {
"totalmonth": {
"sum": {
"script": "Float.parseFloat(doc['value'].value)"
}
}
}
}
}
}

对于名为 value 的字段:Float.parseFloat(doc['value'].value)

关于string - 在聚合时将字符串转换为 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30706361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com