【发布时间】:2021-02-11 17:41:13
【问题描述】:
我有一个用例,我需要从 Elasticsearch 获取所有唯一的用户 ID,并且它应该按时间戳排序。
我目前使用的是带有子聚合的复合术语聚合,它将返回最新的时间戳。
(我无法在客户端对其进行排序,因为它会减慢脚本速度)
弹性搜索中的样本数据
{
"_index": "logstash-2020.10.29",
"_type": "doc",
"_id": "L0Urc3UBttS_uoEtubDk",
"_version": 1,
"_score": null,
"_source": {
"@version": "1",
"@timestamp": "2020-10-29T06:56:00.000Z",
"timestamp_string": "1603954560",
"search_query": "example 3",
"user_uuid": "asdfrghcwehf",
"browsing_url": "https://www.google.com/search?q=example+3",
},
"fields": {
"@timestamp": [
"2020-10-29T06:56:00.000Z"
]
},
"sort": [
1603954560000
]
}
预期输出:
[
{
"key" : "bjvexyducsls",
"doc_count" : 846,
"1" : {
"value" : 1.603948557E12,
"value_as_string" : "2020-10-29T05:15:57.000Z"
}
},
{
"key" : "lhmsbq2osski",
"doc_count" : 420,
"1" : {
"value" : 1.6039476E12,
"value_as_string" : "2020-10-29T05:00:00.000Z"
}
},
{
"key" : "m2wiaufcbvvi",
"doc_count" : 1,
"1" : {
"value" : 1.603893635E12,
"value_as_string" : "2020-10-28T14:00:35.000Z"
}
},
{
"key" : "rrm3vd5ovqwg",
"doc_count" : 1,
"1" : {
"value" : 1.60389362E12,
"value_as_string" : "2020-10-28T14:00:20.000Z"
}
},
{
"key" : "x42lk4t3frfc",
"doc_count" : 72,
"1" : {
"value" : 1.60389318E12,
"value_as_string" : "2020-10-28T13:53:00.000Z"
}
}
]
【问题讨论】:
-
能否提供一些示例索引数据、映射和预期的搜索查询结果?您的示例索引数据中有
date字段吗? -
添加了示例数据问题。需要排序聚合列表之类的东西。
标签: elasticsearch elastic-stack dsl querydsl elk