你能改变一个字段的值吗,比如Kibana中的{1,2,3}到{red,blue,绿色}?

cs7cruho  于 10个月前  发布在  Kibana
关注(0)|答案(1)|浏览(69)

我有一个字段,变化为1,2,3。我想让可视化显示红色,蓝色,绿色,而不是int(即int to string)。这是否可以在不重写索引的情况下完成?
例如,我有一个条形图,水平轴上有1,2,3。我希望它更改为:红蓝绿色
我花了一个小时在谷歌上搜索这个问题的答案,没有找到任何答案。通读了kibana文档,也没有看到这一点。考虑到我读到的关于字符串到int操作的内容,这似乎是不可能的。这应该很容易,所以我只是想找出正确的方法来做到这一点。

2ul0zpep

2ul0zpep1#

是的,如果您使用的是7.13-7.17,您可以在定义索引模式(或数据视图,取决于您的版本)时使用脚本字段来执行此操作。

7.x

只需转到Stack Management > Index Patterns(或Stack Management > Data views),选择索引,然后添加一个新的脚本字段(键入:字符串,格式:字符串)并添加以下Painless脚本:

def colors = ['1': 'red', '2': 'blue', '3': 'green'];
return doc.color.size() > 0 ? colors[doc.color.value.toString()] : null;

字符串
在Kibana 7.17中,它看起来是这样的:
x1c 0d1x的数据
然后,在条形图可视化中,您可以在术语聚合中使用这个新的字符串化颜色脚本字段,而不是整数字段:


8.x

如果您使用的是8.x,则可以使用运行时字段实现相同的功能。
您可以转到Stack Management > Data Views,然后单击“Add field”。然后,您可以给予您的字段一个名称,并选择“关键字”类型。选择“Set Value”并在文本字段中添加以下脚本:

def colors = ['1': 'red', '2': 'blue', '3': 'green'];
emit(doc.color.size() > 0 ? colors[doc.color.value.toString()] : null);


然后在创建条形图可视化时以相同的方式进行操作,选择这个新的运行时字段而不是整数字段。

相关问题