Search code examples
elasticsearchelastic-stackelk

Elasticsearch _search not providing results


I'm trying to return all name fields and count fields from my index however when I try to search for data no data is returned (as shown in last code stub). I definitely have data in my index. What am I doing wrong in my _search command?

My mappings:

PUT /visual
{
  "mappings": {
     "properties": {
        "@timestamp": {"type": "date"},
        "name": {
           "type" : "text",
              "fields" : {
                 "keyword" : {
                     "type" : "keyword"
            }
          }
        },
        "count": {"type": "integer"},
        "err": {"type": "integer"},
        "delta1": {"type": "integer"},
        "str_list": {"type": "text"}
     }
  }
}

My search command where I have tried to return the name field, count field and timestamp:

POST visual/_search

{
  "query":{
    "range":{
      "order_date":{
        "gte":"now-80d"
      }
    }
  },
    "aggs": {
      "names":{
        "terms":{"field":"name.keyword"},
    "aggs": {
      "counts":{
        "terms":{"field":"count"},
    "aggs": {
        "time_buckets": {
          "date_histogram": {
            "field": "@timestamp",
            "fixed_interval": "1h",
            "extended_bounds": {
              "min": "now-80d"
            },
          "min_doc_count": 0
          }
        }
    }
    }
    }
    }
    },"size":100

}

The Response where no data has been returned:

{
  "took" : 0,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 0,
      "relation" : "eq"
    },
    "max_score" : null,
    "hits" : [ ]
  },
  "aggregations" : {
    "names" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [ ]
    }
  }
}

Solution

  • In your range query, you're using the field order_field, which doesn't exist given your mappings. So maybe using @timestamp will already solve the problem?

    "query":{
        "range":{
          "@timestamp":{
            "gte":"now-80d"
          }
        }
      }
    

    Check the range query doc for more information.