范围查询

范围查询 #

您可以使用 range 范围查询搜索字段中的值范围。

要搜索 line_id 值为 >= 10 和 <= 20 的文档,请使用以下请求:

GET shakespeare/_search
{
  "query": {
    "range": {
      "line_id": {
        "gte": 10,
        "lte": 20
      }
    }
  }
}

运算符 #

范围查询中的字段参数接受以下可选运算符参数:

  • gte:大于或等于
  • gt:大于
  • lte:小于或等于
  • lt:小于

日期字段 #

您可以对包含日期的字段使用范围查询。例如,假设您有一个products索引,并且想要查找 2019 年添加的所有产品:

GET products/_search
{
  "query": {
    "range": {
      "created": {
        "gte": "2019/01/01",
        "lte": "2019/12/31"
      }
    }
  }
}

日期格式 #

要在查询中使用字段映射格式以外的日期格式,请在 format 字段中指定它。

例如,如果products索引将created字段映射为 strict_date_optional_time,则可以为查询日期指定不同的格式,如下所示:

GET /products/_search
{
  "query": {
    "range": {
      "created": {
        "gte": "01/01/2022",
        "lte": "31/12/2022",
        "format":"dd/MM/yyyy"
      }
    }
  }
}