elasticsearch 向聚合查询添加where子句,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch 向聚合查询添加where子句,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch 向聚合查询添加where子句

elasticsearch 向聚合查询添加where子句,elasticsearch,kibana,elasticsearch,Kibana,这是kibana生成的查询,它按预期工作。但是我想在查询中再添加一个where子句。eventname不应以“描述”或“列表”开头 更新: 我不确定这是否会正确地排除记录 "must_not": [ { "prefix" : { "eventName.keyword" : "Describe" } }, { "prefix" : { "eventName.keyword" : "List" } } ] 如何将此查询返回kibana?您可以通过以下任一

这是kibana生成的查询,它按预期工作。但是我想在查询中再添加一个where子句。eventname不应以“描述”或“列表”开头


更新: 我不确定这是否会正确地排除记录

      "must_not": [     
{ 
    "prefix" : { "eventName.keyword" : "Describe" }
},
{ 
    "prefix" : { "eventName.keyword" : "List" }
}
]

如何将此查询返回kibana?

您可以通过以下任一方式获得预期结果:

方法1:自定义现有查询\u字符串查询

将Kibana搜索栏中的默认查询字符串替换为以下查询字符串:

!(eventName.keyword: Describe* OR eventName.keyword: List*)
方法2:在Kibana中添加过滤器

  • 如前所述,在Kibana中添加过滤器
  • 然后,将整个过滤器更换为以下代码:
  • `


    `

    我对查询做了一些更改。但是如何将新查询应用到kibana?我使用的是方法1。有很多OR子句(不仅仅是2个)。有没有办法缩短它?如果您将
    eventName.keyword
    设置为
    default\u字段
    ,那么您可以忽略查询字符串中的字段名前缀,这样最终您的上述查询字符串可以重写为
    !(描述*列表*)
    !(eventName.keyword: Describe* OR eventName.keyword: List*)
    
    {
      "query": {
        "bool": {
          "must_not": [
            {
              "prefix": {
                "eventName.keyword": "Describe"
              }
            },
            {
              "prefix": {
                "eventName.keyword": "List"
              }
            }
          ]
        }
      }
    }