【问题标题】:Query to match content of two fields in Kibana查询以匹配 Kibana 中两个字段的内容
【发布时间】:2019-06-24 04:23:53
【问题描述】:

我正在使用 ElasticSearch 和 Kibana 进行可视化。当两个不同的字段具有相同的内容时,我想构建一个查询来匹配它们。
例如:

field1:地址 = google.com
field2:主机名 = google.com

是否可以在不知道它们的值的情况下匹配两个字段?

谢谢!

【问题讨论】:

    标签: elasticsearch search lucene kibana


    【解决方案1】:

    您可以使用无痛脚本来执行此操作。查询将如下所示:

    {
      "query": {
        "bool": {
          "filter": {
            "script": {
              "script": {
                "source": "doc['address'].value == doc['hostname'].value",
                "lang": "painless"
              }
            }
          }
        }
      }
    }
    

    要在kibana 中使用,您可以创建scripted field

    【讨论】:

    • 谢谢。我也可以使用通配符吗?字段的值并不完全相同,所以我想搜索如下内容:doc['address'].value == (wildcard) doc['hostname'].value (wildcard)。这可能吗?
    • 您可以使用正则表达式,但我不推荐它,因为错误的正则表达式会导致灾难。这就是为什么您必须显式启用默认禁用的正则表达式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多