gpt4 book ai didi

Elasticsearch 将字符串转换为数字

转载 作者:行者123 更新时间:2023-11-29 02:51:09 24 4
gpt4 key购买 nike

我是 Elasticsearch 的新手,刚开始使用 ELK 堆栈。我在我的 Logstash 中收集键值类型日志并将其传递给 Elasticsearch 中的索引。我在 Logstash 中使用 kv 过滤器插件。因此,所有字段默认都是字符串类型。

当我尝试在 Elasticsearch 中的数字字段上执行 avg 或 sum 等聚合时,出现异常:ClassCastException[org.elasticsearch.index.fielddata.plain.PagedBytesIndexFieldData cannot be cast to org.elasticsearch。 index.fielddata.IndexNumericFieldData]

当我检查索引中的映射时,除了时间戳之外的所有字段都被标记为字符串。

请告诉我如何解决这个问题,因为我的日志事件中有许多用于聚合的数字字段。

谢谢,

克尔萨纳

最佳答案

您可以为这些字段设置显式映射(参见例如 Change default mapping of string to "not analyzed" in Elasticsearch 以获得一些指导),但在 Logstash 中使用 mutate filter 将这些字段转换为整数更容易。 :

mutate {
convert => ["name-of-field", "integer"]
}

然后 Elasticsearch 会更好地猜测您的字段的最佳数据类型。

(另见 Data type conversion using logstash grok。)

关于Elasticsearch 将字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29297722/

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