kibana - 如何在 Kibana 中搜索数组的存在?

标签 kibana elasticsearch-query

我在 Kibana 中有一个字段,它有时是字符串,有时是数组。
例如:

{ "fld1": "val1", "fld2": "val2"} 
{ "fld1": "val3", "fld2": [ "val4", "val5" ] }

我想在“fld2”中搜索包含数组的文档。

我试过:
{
  "query": {
    "bool": {
      "filter": {
        "script": {
          "script": {
            "source": "doc['fld2'].size > 0",
            "lang": "painless"
          }
        }
      }
    }
  }
}

最佳答案

Elasticsearch 脚本为 doc['fld2'] 值返回字符串,您必须将其转换为数组以检查大小。

{
  "query": {
        "bool" : {
            "filter" : {
                "script" : {
                    "script" : {
                        "source": "def val = doc['fld2']; val.size() > 1",
                        "lang": "painless"
                     }
                }
            }
        }
    }
}

关于kibana - 如何在 Kibana 中搜索数组的存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59084952/

相关文章:

elasticsearch - 为多个 Elasticsearch 集群配置单个 Kibana 服务器

elasticsearch - 如何修复此代码异常错误elasticsearch

elasticsearch - 是否可以在 Kibana 中运行 elasticsearch 聚合查询?

elasticsearch - 解析整数并在Kibana中显示在时间轴中

node.js - ElasticSearch-多次匹配查询,即使数据在那里也没有返回命中值-NodeJS

elasticsearch - Elasticsearch 路口查询

elasticsearch - Elasticsearch日期查询。在某个月出生的人

python - 使用elasticsearch-dsl-py在子字段(包含在另一个字段中的字段)上创建查询?

elasticsearch - 如何通过Kibana中的指定https://端点搜索/过滤日志消息

elasticsearch - 如何在elasticsearch中搜索单个值