Elasticsearch date_range类型的用法(附带实例)
范围数据类型表示字段的上限和下限。例如,如果想为疫苗试验选择一组志愿者,可以根据年龄 25~50 岁或 51~70 岁、收入水平、城市居民等类别对志愿者进行分组。
Elasticsearch 提供了范围数据类型来支持对范围数据的搜索查询。范围由运算符定义,如用于上限的 lte(小于或等于)和 lt(小于),以及用于下限的 gte(大于或等于)和 gt(大于)。
Elasticsearch 提供了多种范围数据类型,包括 date_range、integer_range、float_range、ip_range 等。本节我们来看一下 date_range 类型的实际应用。
date_range 数据类型可以帮助为字段索引一个日期范围。然后我们可以使用 range 查询来根据日期的上限和下限来匹配条件。
使用 date_range 类型的实例代码如下:
现在,索引已经就绪,让我们用 Venkat 的培训课程和日期索引一些文档:
数据准备好之后,我们发出一个搜索请求,查找 Venkat 在两个日期之间的课程,实例代码如下:
date_range 让搜索日期范围变得很容易。除了 date_range,我们还可以创建其他范围类型,包括 ip_range、float_range、double_range、integer_range 等。
Elasticsearch 提供了范围数据类型来支持对范围数据的搜索查询。范围由运算符定义,如用于上限的 lte(小于或等于)和 lt(小于),以及用于下限的 gte(大于或等于)和 gt(大于)。
Elasticsearch 提供了多种范围数据类型,包括 date_range、integer_range、float_range、ip_range 等。本节我们来看一下 date_range 类型的实际应用。
date_range 数据类型可以帮助为字段索引一个日期范围。然后我们可以使用 range 查询来根据日期的上限和下限来匹配条件。
使用 date_range 类型的实例代码如下:
PUT trainings
{
"mappings": {
"properties": {
"name":{ ←--- 培训课程名称
"type": "text"
},
"training_dates":{ ←--- training_dates字段被声明为date_range类型
"type": "date_range"
}
}
}
}
Venkat Subramaniam 是一位屡获殊荣的作者,他开设了从编程到设计再到测试等诸多领域的培训课程。我们使用他的一些培训课程和日期作为示例,创建一个 trainings 索引,其中包含两个字段,分别是培训课程名称(text 类型)和培训日期(date_range 类型)。现在,索引已经就绪,让我们用 Venkat 的培训课程和日期索引一些文档:
PUT trainings/_doc/1
{
"name":"Functional Programming in Java",
"training_dates":{
"gte":"2021-08-07",
"lte":"2021-08-10"
}
}
PUT trainings/_doc/2
{
"name":"Programming Kotlin",
"training_dates":{
"gte":"2021-08-09",
"lte":"2021-08-12"
}
}
PUT trainings/_doc/3
{
"name":"Reactive Programming",
"training_dates":{
"gte":"2021-08-17",
"lte":"2021-08-20"
}
}
date_range 类型的字段需要两个值,分别是上限和下限。它们通常由 gte(大于或等于)、lt(小于)等缩写来表示。数据准备好之后,我们发出一个搜索请求,查找 Venkat 在两个日期之间的课程,实例代码如下:
GET trainings/_search
{
"query": {
"range": { ←--- 使用range查询搜索
"training_dates": { ←--- 搜索在这两个日期之间的课程
"gt": "2021-08-10",
"lt": "2021-08-12"
}
}
}
}
根据查询响应(为简洁起见,省略了结果),我们了解到 Venkat 将在这两个日期之间开设一场“Programming Kotlin”培训(第二个文档与日期匹配)。date_range 让搜索日期范围变得很容易。除了 date_range,我们还可以创建其他范围类型,包括 ip_range、float_range、double_range、integer_range 等。
ICP备案:
公安联网备案: