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

カーディナリティ メトリクスを試すことができます。私はそれがあなたの問題を解決すると思います.

GET /indexName/test/_search

{ "サイズ" : 10, "aggs" : { "distinct_colors" : { "カーディナリティ" : { "フィールド" : "col1" } } } }

于 2016-02-18T05:45:01.017 に答える