通过比较Elasticsearch和Kibana中的字段来过滤结果

时间:2019-07-15 08:25:28

标签: elasticsearch kibana

我正在尝试构建一个kibana可视化文件,以显示其中字段A不等于另一个字段B的文档数。

这些应该首先按术语进行汇总,以便我在X轴上具有一些组。然后,对于所有这些不同的术语,我想显示字段A不等于字段B的计数。

Example
{
   "fieldA":"HR",
   "fieldB":"HR",
   "AggregateOnThisField":"A"
},
{
   "fieldA":"HR",
   "fieldB":"Admin",
   "AggregateOnThisField":"A"
}
{
   "fieldA":"Admin",
   "fieldB":"HR",
   "AggregateOnThisField":"B"
}
{
   "fieldA":"Admin",
   "fieldB":"HR",
   "AggregateOnThisField":"B"
}

因此,X轴上将有两个点分别代表A和B。A的计数为1,B的计数为2。我知道如何在X轴上绘制项,但是很难实现此过滤器。

同时运行v7.2。

谢谢。

1 个答案:

答案 0 :(得分:0)

我能够通过将脚本字段添加到索引中来解决此问题。 为此,请转到管理->索引模式->选择索引->脚本化字段

由于我需要布尔输出,因此选择的类型与Type相同。

然后在脚本中添加以下行,

if(doc['fieldA.keyword'].value.toLowerCase().equals(doc['fieldB.keyword'].value.toLowerCase()))
    {
         return true;
    }
    else
    {
         return false;
    }

fieldA和fieldB是.keyword

添加此脚本后,我可以将其用作kibana可视化中的字段。