我创建一个索引,它保存两个日期(D1,D2),之后我想查询这个时刻是否在 D1 和 D2 之间,所以我查询:
startdate <= "2019-08-22T03:55:47.165Z" AND endate>= "2019-08-22T03:55:47.165Z"
Run Code Online (Sandbox Code Playgroud)
它成功返回了我想要的数据,因此我尝试在开发工具中再次执行相同的操作:
GET i_want_get_date/_search
{
"query":{
"query_string":{
"query":"startdate<= \"2019-08-22T03:55:47.165Z\" AND enddate>= \"2019-08-22T03:55:47.165Z\""
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是:
它无法搜索回任何结果,查询无法使用此方法比较日期
有什么建议吗?谢谢!
=================================================== =========
感谢Val回答问题,我使用一个非常精简的查询来执行相同的功能,我更改了一点查询语法以使其工作:
GET i_want_get_date/_search
{
"query": {
"bool": {
"filter": [
{
"range": {
"startdate":{
"lte":"2019-08-22T03:55:47.165Z"
}
}
},
{
"range": {
"enddate":{
"gte":"2019-08-22T03:55:47.165Z"
}
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
Val*_*Val 11
我建议改用两个range查询
GET i_want_get_date/_search
{
"query": {
"bool": {
"filter": [
{
"range": {
"startdate": {
"gte": "2019-08-21T03:55:47.165Z"
}
}
},
{
"range": {
"enddate": {
"lt": "2019-08-22T03:55:47.165Z"
}
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29751 次 |
| 最近记录: |