Link Search Menu Expand Document Documentation Menu

范围字段类型

1.0 版引入

下表列出了 OpenSearch 支持的所有范围字段类型。

字段数据类型 描述
integer_range 整数 integer 值的范围。
long_range 长整型 long 值的范围。
double_range 双精度浮点型 double 值的范围。
float_range 浮点型 float 值的范围。
ip_range IPv4 或 IPv6 格式的 IP 地址范围。起始和结束 IP 地址可以采用不同格式。
date_range 日期 date 值的范围。起始和结束日期可以采用不同的格式。在内部,所有日期都存储为自纪元以来毫秒的无符号 64 位整数。

示例

创建包含双精度浮点型范围和日期范围的映射

PUT testindex 
{
  "mappings" : {
    "properties" :  {
      "gpa" : {
        "type" : "double_range"
      },
      "graduation_date" : {
        "type" : "date_range",
        "format" : "strict_year_month||strict_year_month_day"
      }
    }
  }
}

索引包含双精度浮点型范围和日期范围的文档

PUT testindex/_doc/1
{
  "gpa" : {
    "gte" : 1.0,
    "lte" : 4.0
  },
  "graduation_date" : {
    "gte" : "2019-05-01",
    "lte" : "2019-05-15"
  }
}

IP 地址范围

您可以使用两种格式指定 IP 地址范围:范围和 CIDR 表示法

创建包含 IP 地址范围的映射

PUT testindex 
{
  "mappings" : {
    "properties" :  {
      "ip_address_range" : {
        "type" : "ip_range" 
      },
      "ip_address_cidr" : {
        "type" : "ip_range" 
      }
    }
  }
}

索引包含两种格式的 IP 地址范围的文档

PUT testindex/_doc/2
{
  "ip_address_range" : {
    "gte" : "10.24.34.0",
    "lte" : "10.24.35.255"
  },
  "ip_address_cidr" : "10.24.34.0/24"
}

查询范围字段

您可以使用词语查询 (Term query)范围查询 (Range query) 来搜索范围字段中的值。

词语查询

词语查询接受一个值,并匹配所有该值落在范围内的范围字段。

以下查询将返回文档 1,因为 3.5 在 [1.0, 4.0] 范围内

GET testindex/_search
{
  "query" : {
    "term" : {
      "gpa" : {
        "value" : 3.5
      }
    }
  }
}

范围查询

范围字段上的范围查询返回该范围内的文档。

查询 2019 年所有毕业日期,以“MM/dd/yyyy”格式提供日期范围

GET testindex1/_search
{
  "query": {
    "range": {
      "graduation_date": {
        "gte": "01/01/2019",
        "lte": "12/31/2019",
        "format": "MM/dd/yyyy",
        "relation" : "within"       
      }
    }
  }
}

前述查询将为 withinintersects 关系返回文档 1,但不会为 contains 关系返回文档 1。有关关系类型的更多信息,请参阅范围查询参数

参数

下表列出了范围字段类型接受的参数。所有参数都是可选的。

参数 描述
提升 一个浮点值,指定此字段对相关性得分的权重。高于 1.0 的值会增加字段的相关性。介于 0.0 和 1.0 之间的值会降低字段的相关性。默认值为 1.0。
强制转换 (coerce) 一个布尔值,表示是否截断整数值的小数部分并将字符串转换为数值。默认值为 true
index 一个布尔值,指定字段是否可搜索。默认值为 true
存储 一个布尔值,指定字段值是否应存储且可与 _source 字段单独检索。默认值为 false
剩余 350 字符

有问题?

想贡献?