假设我有一个存储人们旅行的映射,以及该映射中的一个字段,即用户 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
因为有一个用户有两次旅行(id 11019)和两个用户有一次旅行(ids 11020 和 11021)。