Elasticsearch查询-没有结果匹配

时间:2018-10-25 23:45:15

标签: elasticsearch

我相信我正在尝试做一些非常简单的事情,但是不明白为什么我没有得到正确的结果。

在我们的Kibana的Discover标签中,如果我想查看所有数据的历史记录(选择过去5年),则可获得约5亿次匹配。如果再添加一个简单的过滤器-database is postgres-prod,则可获得约1.37亿次匹配,因此Discover标签中的过滤器有效。我什至可以看到过滤器DSL(如果我要编辑过滤器),它看起来像这样:

{
  "query": {
    "match": {
      "database": {
        "query": "postgres-prod",
        "type": "phrase"
      }
    }
  }
}

enter image description here

现在的问题是,当我进入Kibana Dev Tools并尝试执行相同的操作时。如果仅执行match_all查询,我的点击量将达到预期的约500M:

GET /logstash-*/_search

{
    "query": {
        "match_all": {}
    }
}

response:
{
  "took": 2347,
  "timed_out": false,
  "_shards": {
    "total": 155,
    "successful": 155,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 500708223,
    "max_score": 1,
    "hits": [

问题是无论我要执行什么查询,我总能获得500M匹配的结果,而不是我在发现选项卡中看到的预期的137M的结果。即使我要应用在“发现”过滤器中看到的完全相同的查询,像这样:

GET /logstash*/_search

{
  "query": {
    "match": {
      "database": {
        "query": "postgres-prod",
        "type": "phrase"
      }
    }
  }
}

response:
{
  "took": 2313,
  "timed_out": false,
  "_shards": {
    "total": 155,
    "successful": 155,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 500709434,
    "max_score": 1,
    "hits": [

我还尝试了许多其他查询,例如该布尔查询,但始终只得到500M次点击的结果。就像我正在尝试的所有查询都被忽略

GET /logstash-*/_search

{
  "query": { 
    "bool": { 
      "must": [
        { "match": {
            "database": {
              "query": "postgres-prod",
              "type": "phrase"
            }
          }
        }
      ]
    }
  }
}
response:
{
  "took": 2338,
  "timed_out": false,
  "_shards": {
    "total": 155,
    "successful": 155,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 500714297,
    "max_score": 1,
    "hits": [

任何人都知道我在做什么错,为什么查询没有缩小我的搜索范围?

0 个答案:

没有答案