我使用
OpenSearch.Client
库创建了一个索引,并再次使用 OpenSearch.Client
对它执行查询。
我注意到某些范围查询在日期字段上无法按预期工作。
我尝试以 UTC 格式索引并发送所有日期,只是为了确定,但这没有帮助。
例如,这是我发送的查询(从日志中获取并通过
OpenSearch Dashboards
进行测试):
POST documents/_search
{
"query": {
"bool": {
"adjust_pure_negative": true,
"boost": 1.0,
"must": [
{
"bool": {
"adjust_pure_negative": true,
"boost": 1.0,
"must": [
{
"range": {
"copies.creationDate": {
"boost": 1.0,
"from": "2023-09-06T21:00:00Z",
"include_lower": true,
"include_upper": true,
"to": "2023-09-29T20:59:00Z"
}
}
}
]
}
}
]
}
}
}
...这是我得到的回报之一,将日期字段设置为
2023-09-05T07:59:53.0770000Z
:
这是怎么回事?
这两个值似乎都是 UTC 格式(我认为这就是
Z
的意思),并且查询中的 from
的值比搜索结果更大!
进一步增加查询
from
值确实会消除结果,但我不确定为什么它不能按预期工作。 OpenSearch 中是否内置了一些时区逻辑,导致事情变得糟糕?
这让我发疯。
我看到
copies
是一个对象数组。除了屏幕截图中的日期之外,您的响应中的数组是否还包含满足范围查询的日期?如果是这种情况,您应该寻找嵌套查询。