如何从具有特定请求值的搜索查询中排除结果?

问题描述 投票:0回答:1

我想计算每天访问具有特定字段值的文档的次数。我这样做是通过检索每天的索引,然后对每个索引执行搜索。

搜索查询:

"query": {
  "bool": {
    "should": {
      "exists": {
        "field": "field_to_find"
      },
    },
  }
}

文件结果结构:

{  
  ...
  "_shards":{  
    ...
  },
  "hits": {  
    "total": 6,
    "hits": [{  
      ...
      "_source": {  
        "request": "/data/000000/comment",
        "field_to_find": 000000,
        ...
      }
    }, {  
      ...
      "_source": {  
        "request": "/data/111111",
        "field_to_find": 111111,
        ...
      }
    }]
  }
}

我想只计算包含请求结构/dataset/<data_id>的命中数。我需要排除计数中的所有其他值。

最有效的方法是什么?

elasticsearch logstash elastic-stack filebeat
1个回答
1
投票

你可以使用Regexp Query

{
  "query": {
    "bool": {
      "must": [{
        "exists": {
          "field": "field_to_find"
        },
        "regexp": {
          "request": "^/data/[0-9]+$"
        }
      }]
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.