如何比较Kibana中两个字段的值

时间:2016-05-23 07:57:31

标签: dsl kibana-4 elastic-stack

ES中有两种日志(rtmp和apache),apache有clientip.raw,rtmp有ipclient.raw。问题是:我怎么能在我的Kibana面板中看到具有这种情况的数据“ipclient”=“clientip”?

我尝试在搜索栏中写这个,但不起作用:

{
"query": {
    "filtered": {
        "filter": {
            "script": {"script": "doc['clientip.raw'].value == doc['ipclient.raw'].value"}
            }
        }
    }
} 

1 个答案:

答案 0 :(得分:1)

您可以编写以下查询: -

{"constant_score":{"filter":{"script" : { "script" : "doc['clientip.raw'].value == doc['ipclient.raw'].value"}}}}

使用上述查询时可能会出现错误,例如: -

  

ScriptException [类型为[inline],operation [search]和lang [groovy]的脚本被禁用]

要解决此错误,请编辑elasticsearch.yml文件并在结尾处输入以下属性: -

 script.inline:on

然后,您可以重新启动Elasticsearch节点或群集,然后在Kibana上查询相同内容,以便获取所需的记录。