我有一个字段,变化为1,2,3。我想让可视化显示红色,蓝色,绿色,而不是int(即int to string)。这是否可以在不重写索引的情况下完成?例如,我有一个条形图,水平轴上有1,2,3。我希望它更改为:红蓝绿色我花了一个小时在谷歌上搜索这个问题的答案,没有找到任何答案。通读了kibana文档,也没有看到这一点。考虑到我读到的关于字符串到int操作的内容,这似乎是不可能的。这应该很容易,所以我只是想找出正确的方法来做到这一点。
2ul0zpep1#
是的,如果您使用的是7.13-7.17,您可以在定义索引模式(或数据视图,取决于您的版本)时使用脚本字段来执行此操作。
只需转到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,则可以使用运行时字段实现相同的功能。您可以转到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);
型然后在创建条形图可视化时以相同的方式进行操作,选择这个新的运行时字段而不是整数字段。
1条答案
按热度按时间2ul0zpep1#
是的,如果您使用的是7.13-7.17,您可以在定义索引模式(或数据视图,取决于您的版本)时使用脚本字段来执行此操作。
7.x
只需转到Stack Management > Index Patterns(或Stack Management > Data views),选择索引,然后添加一个新的脚本字段(键入:字符串,格式:字符串)并添加以下Painless脚本:
字符串
在Kibana 7.17中,它看起来是这样的:
x1c 0d1x的数据
然后,在条形图可视化中,您可以在术语聚合中使用这个新的字符串化颜色脚本字段,而不是整数字段:
的
8.x
如果您使用的是8.x,则可以使用运行时字段实现相同的功能。
您可以转到Stack Management > Data Views,然后单击“Add field”。然后,您可以给予您的字段一个名称,并选择“关键字”类型。选择“Set Value”并在文本字段中添加以下脚本:
型
然后在创建条形图可视化时以相同的方式进行操作,选择这个新的运行时字段而不是整数字段。