【发布时间】:2020-12-14 18:53:56
【问题描述】:
我只想按时间过滤文档。例如,如果我提供的时间戳如下:7:00:00 和 15:00:00(按 GMT),它们应该返回 15 Dec 2020、30 April 1340 等日期。
这个查询显然不起作用(我使用 node.js 客户端),因为它返回 1000 年到 3000 年之间的任何日期:
searchResult = await esClient.transport.request({
method: 'GET',
path: 'events/_search',
body: {
query: {
bool: {
must: {
range: {
date: {
gte: '1000-07-15T07:00:00Z',
lte: '3000-07-15T15:00:00Z'
}
}
}
}
},
}
});
除了这个查询,因为根据this docs,我提供的时间戳(7:00:00 和15:00:00)被转换为具有默认值的日期:
searchResult = await esClient.transport.request({
method: 'GET',
path: 'events/_search',
body: {
query: {
bool: {
must: {
range: {
date: {
'gte': '7:00:00',
'lte': '15:00:00',
format: 'HH:mm:ss'
}
}
}
}
},
}
});
如何仅按时间过滤,而不按天、月、年过滤?
【问题讨论】:
标签: elasticsearch