Kibana:使用 Elasticsearch SQL 的字符串到 int 问题

问题描述 投票:0回答:1

我有一个带有特定字段的 ES 索引,在 Kibana 的控制台开发中通过索引映射显示为:

    "spotted_field" : {
      "type" : "text"
    }

此字段包含仅包含整数的字符串,我无法更改它,所以我想知道如何执行简单的字符串到 int 的转换,以便将整个总和计算为仪表板指标。

我认为在 Canvas 模板中使用 ElasticSearch SQL 可以完成这项工作。在数据控制台中,我从一个简单的开始:

SELECT CONVERT("spotted_field", SQL_INTEGER) AS sum
FROM "my_index"

这个似乎有效,因为预览数据中的一切看起来都很好,所以接下来我尝试了:

SELECT SUM(CONVERT("spotted_field", SQL_INTEGER)) AS sum
FROM "my_index"

但在预览数据中收到此报告的错误:

[essql] > Unexpected error from Elasticsearch: search_phase_execution_exception - all shards failed

此消息可能与格式问题有关...那么我在转换过程中错过了什么?如果字段包含关键字而不是字符串,转换效果会更好吗?

PS:我使用的是 Kibana v 7.17.12 版本

编辑1:我确定函数 CONVERT 有效并返回预期的格式。

sql elasticsearch type-conversion kibana
1个回答
0
投票

长话短说:转换适用于字符串字段(它只有数字),但对于像求和这样的操作,必须将其格式化为关键字。

© www.soinside.com 2019 - 2024. All rights reserved.