3

人々が行った旅行を保存するマッピングがあり、そのマッピングにユーザー ID のフィールドがあるとします。例えば:

"trip": {
  "destination": {
    "type": "string"
  },
  "departure_date": {
    "type": "date"
  },
  "return_date": {
    "type": "date"
  },
  "user_id": {
    "type": "integer"
  }
}

人数 (user_id) でバケット化された旅行の量 (このマッピングを持つエントリ) を返すクエリを作成しようとしています。

たとえば、次のようなものが返されます。

amount of trips  |   people
---------------------------
                1|      723
                2|      422
                3|      210
                4|       82
                5|       11
                6|        0
                7|        1
                ...

この種のクエリに直面する方法がわかりません。私はしばらくの間、バケットとサブ集計という用語をいじっていましたが、役に立ちませんでした。

どんな助けでも感謝します。

アップデート

次に例を示します。

インデックスに次のレコードがあるとします。

[
  {
    "_index": "my_index",
    "_type": "trip",
    "_id": "9034",
    "_score": 1,
    "_source": {
      "user_id": 11019,
      "destination": "Paris",
      "departure_date": "2015-01-09",
      "return_date": "2015-02-10",
    },
  {
    "_index": "my_index",
    "_type": "trip",
    "_id": "9035",
    "_score": 1,
    "_source": {
      "user_id": 11019,
      "destination": "Madrid",
      "departure_date": "2013-11-22",
      "return_date": "2013-11-29",
    },
  {
    "_index": "my_index",
    "_type": "trip",
    "_id": "9036",
    "_score": 1,
    "_source": {
      "user_id": 11020,
      "destination": "Boston",
      "departure_date": "2013-09-01",
      "return_date": "2013-10-15",
    },
  {
    "_index": "my_index",
    "_type": "trip",
    "_id": "9037",
    "_score": 1,
    "_source": {
      "user_id": 11021,
      "destination": "London",
      "departure_date": "2014-02-07",
      "return_date": "2014-03-10",
    }
]

私のクエリは次のようなものを返します:

amount of trips  |   people
---------------------------
                1|        2
                2|        1

2 つの旅行 (ID 11019) を持つ 1 人のユーザーと、1 つの旅行 (ID 11020 および 11021) を持つ 2 人のユーザーがいるからです。

4

0 に答える 0