在Elasticsearch版本1.x中执行时的以下查询
正在考虑在2016年6月15日之后创建的文档,即文档在6/15/2016的时间是凌晨12点以后。正在考虑文档到6/15/2016 23:59:59.999。
但是,对于新版本的ES 2.x,范围查询已停止考虑2016年6月15日时间超过12 Am的文档。现在它正在考虑直到6/14/2016 23:59:59.999的文件。
这里到底发生了什么变化?
{
"from": 0,
"size": 10,
"sort": [
{
"PRONumber.sort": {
"order": "desc"
}
}
],
"query": {
"bool": {
"must": [
{
"match": {
"BOLNumber": {
"query": "7861254",
"analyzer": "gtz_search_analyzer",
"operator": "and"
}
}
},
{
"range": {
"CreatedDate": {
"gte": "1753-01-01",
"lte": "2016-06-15"
}
}
}
]
}
}
}
最佳答案
在用于OP中查询的elasticsearch 2.x中,上限为6/15/2016 00:00:00.000
而不是6/14/2016 23.59.59.999
。
在documentation中,您需要在查询中按天明确指定round-up
,如下例所示
例:
{
"from": 0,
"size": 10,
"sort": [
{
"PRONumber.sort": {
"order": "desc"
}
}
],
"query": {
"bool": {
"must": [
{
"match": {
"BOLNumber": {
"query": "7861254",
"analyzer": "gtz_search_analyzer",
"operator": "and"
}
}
},
{
"range": {
"CreatedDate": {
"gte": "1753-01-01",
"lte": "2016-06-15||/d"
}
}
}
]
}
}
}
关于elasticsearch - 日期范围查询Elasticsearch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38330006/