基本上,我试图得到record_created_at
日期,其中一天是星期一
我在下面写了script
在query
查询:
{
"_source": "false",
"query": {
"bool": {
"must": [
{
"script": {
"script": "doc['record_created_at'].value.getDayOfWeek() == 1"
}
}
]
}
},
"aggs": {
"record_created_at_agg": {
"date_histogram": {
"field": "record_created_at",
"calendar_interval": "day",
"format": "yyyy-MM-dd"
}
}
},
"fields": [
"record_created_at"
],
"size": 10000
}
字符串
但是我得到的响应没有在query
中应用过滤器,如下所示:
回复:
...
"aggregations": {
"record_created_at_agg": {
"buckets": [
{
"key_as_string": "2023-05-08",
"key": 1683504000000,
"doc_count": 4
},
{
"key_as_string": "2023-05-09",
"key": 1683590400000,
"doc_count": 0
},
{
"key_as_string": "2023-05-10",
"key": 1683676800000,
"doc_count": 0
},
...
型
我还尝试了另一个过滤器在query
与match
{
"_source": "false",
"query": {
"bool": {
"must": [
{
"match": {
"record_created_at": "2023-05-08T16:14:58.000Z"
}
}
]
}
},
"aggs": {
"filtered_dates": {
"date_histogram": {
"field": "record_created_at",
"calendar_interval": "day",
"format": "yyyy-MM-dd"
}
}
},
"fields": [
"record_created_at"
],
"size": 10000
}
型
按预期获得响应,如下所示
回复2
"aggregations": {
"record_created_at_agg": {
"buckets": [
{
"key_as_string": "2023-05-08",
"key": 1683504000000,
"doc_count": 1
}
]
}
}
}
型
我做错什么了吗?
1条答案
按热度按时间xiozqbni1#
第一个响应在技术上是正确的,因为您在5月9日(星期二)和10日(星期三)得到0个文档。
您可以将
min_doc_count
添加到date_histogram
聚合中,以便只获取星期一的存储桶字符串