在Elasticsearch版本1.x中执行时的以下查询
正在考虑在2016年6月15日之后创建的文档,即文档在6/15/2016的时间是凌晨12点以后。它正在考虑的文档直到2016年6月15日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"
}
}
}
]
}
}
}
在Elasticsearch 2.x中,对于OP中的查询,上限为6/15/2016 00:00:00.000
而不是6/14/2016 23.59.59.999
。
从文档中可以得出,您需要在查询中明确指定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"
}
}
}
]
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句