0

我正在尝试将字段的前 1 个不同值作为

GET /indexName/test/_search?search_type=count
{
  "aggs": {
    "my_fields": {
      "terms": {
        "field": "col1",
        "size": 10
      }
    }
  }

}

这就是我得到的

{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 2,
    "successful": 2,
    "failed": 0
  },
  "hits": {
    "total": 21030,
    "max_score": 0,
    "hits": []
  },
  "aggregations": {
    "my_fields": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "key": "",
          "doc_count": 21030
        }
      ]
    }
  }
}

总的来说,我有21030记录,因此有 doc_count。但这不是我所期待的结果。我的查询有问题吗?

跟进:如果我想在应用过滤器后获得前 10 个值怎么办?

4

3 回答 3

1

以下 Lucene 查询可用于获取前 10 个不同年份:

#DISTINCT
    GET index_name/type_name/_search?size=10
    {
      "aggs":{
        "distict_Year":{
          "cardinality": {
            "field": "Year"
          }
        }
      }
    }

看这里了解更多

于 2017-09-13T03:53:52.263 回答
1

您可以尝试基数度量。我认为它会解决你的问题。

GET /indexName/test/_search

{“大小”:10,“aggs”:{“distinct_colors”:{“基数”:{“字段”:“col1”}}}}

于 2016-02-18T05:45:01.017 回答
0

你也可以用这个,我想这就是你要找的,

 GET /bank/account/_search?search_type=count
          {
           "aggs": {
              "my_fields": {
                   "terms": {
                   "field": "age",
                        "size": 10
                             }
                            }
                   }
           }
于 2016-02-18T06:02:42.617 回答