gpt4 book ai didi

elasticsearch - 如何在 Elasticsearch 中过滤时间频率?

转载 作者:行者123 更新时间:2023-12-03 02:13:02 24 4
gpt4 key购买 nike

考虑以下情况,我有两个菜单-汉堡和比萨,如下所示-

 item  | Week day |startTime(UTC)| end Time(UTC)
----------------------------------------
Burger | Sunday | 8:00 | 11:00
Burger | Monday | 7:00 | 11:00
Burger | Tuesday | 7:00 | 11:00
Pizza | Sunday | 8:00 | 11:00
Pizza | Monday | 7:00 | 11:00
Pizza | Tuesday | 7:00 | 11:00
我在时区(GMT + 4)中有三个分支B1,B2,B3,在时区(GMT + 6)中有两个分支B4,B5。请考虑所有分支中的所有项目。如何存储上述数据并在 Elasticsearch 中进行查询,以便我可以根据用户时区获取当前时间带有分支的可用项目?

最佳答案

您可以将一组time-zoned range must组合在顶级should中,如下所示:

{
"query": {
"bool": {
"should": [
{
"bool": {
"must": [
{
"range": {
"startTime": {
"time_zone": "+04:00",
"gte": "08:00:00"
}
}
},
{
"range": {
"endTime": {
"time_zone": "+04:00",
"lte": "11:00:00"
}
}
}
]
}
},
{
"bool": {
"must": [
{
"range": {
"startTime": {
"time_zone": "+06:00",
"gte": "08:00:00"
}
}
},
{
"range": {
"endTime": {
"time_zone": "+06:00",
"lte": "11:00:00"
}
}
}
]
}
}
]
}
}
}
但是请注意,存储时间范围,例如不带日期的营业时间(因此只是 time而不是 datetime)可能会导致误解 as addressed here。有更好的方法来解决开放时间问题,例如 discussed here

关于elasticsearch - 如何在 Elasticsearch 中过滤时间频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64199056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com