首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在日期范围内搜索项的弹性查询

在日期范围内搜索项的弹性查询
EN

Stack Overflow用户
提问于 2019-01-11 01:50:50
回答 3查看 732关注 0票数 1
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET _search
{
  "query": {
    "bool":{
      "filter":{
        "and":[
        {
          "term":{
            "Server": "XYZ"
          },
          "range": {
            "DateTime":{
              "from": "2018-12-13T00:20:48.782Z",
              "to":"2018-12-14T00:20:48.782Z"
            }
          }
        }
      ]
    }}
  }
} 

以上是我提取属于XYZ服务器的所有记录的弹性查询,在时间范围内,我的数据集中有ServerDateTime列,但抛出错误如下:

{“错误”:{ "root_cause":[{“类型”:"parsing_exception",“原因”:“格式错误查询,预期的END_OBJECT但找到了FIELD_NAME",”行“:9,"col":11 } ],”类型“:"parsing_exception",“原因”:“术语格式错误查询,预期的END_OBJECT但找到FIELD_NAME",”行“:9,"col":11 },”状态“:400 }

我在这里错过了什么!

EN

回答 3

Stack Overflow用户

发布于 2019-01-11 02:40:45

您的查询格式错误,请使用以下查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET _search
{
 "query": {
   "bool": {
     "filter": [ 
      {
        "term": { 
          "Server": "XYZ"
        }
      },
      { 
        "range": {
          "DateTime":{
            "from": "2018-12-13T00:20:48.782Z",
            "to": "2018-12-14T00:20:48.782Z"
          }
        }
      }
    ]
  }
 }
}
票数 1
EN

Stack Overflow用户

发布于 2019-01-11 04:10:31

过滤器子句中不能包含and。ES查询中没有and子句。基本上,您需要组合termrange子句上的筛选器。有关此问题的更多信息,请阅读ES中的组合滤波器

由于您的查询使用的是无效子句,ES无法解析您的查询。

请使用适当的查询,您应该能够从ES获得结果。

请尝试下面的查询,这应该是很好的工作,并让我知道,如果它不工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "query": {
    "constant_score": {
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "Server": "XYZ"
              }
            },
            {
              "bool": {
                "must": [
                  {
                    "range": {
                      "DateTime": {
                        "from": "2018-12-13T00:20:48.782Z",
                        "to": "2018-12-14T00:20:48.782Z"
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    }
  }
}
票数 0
EN

Stack Overflow用户

发布于 2019-01-11 04:37:56

错误消息明确表示查询不正确。

您可以检查范围查询bool查询的官方文档,以确保在bool查询中没有过滤器,也没有从,到范围内的查询。

请检查这个查询。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET _search
{
 "query": {
   "bool": {
     "must": [ 
      {
        "term": { 
          "Server": "XYZ"
        }
      },
      { 
        "range": {
          "DateTime":{
            "gt": "2018-12-13T00:20:48.782Z",
            "lte": "2018-12-14T00:20:48.782Z"
          }
        }
      }
    ]
  }
 }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54144011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文