elasticsearch7,script脚本,筛选date类型的值,大于日期‘2023-03-01’,并且小于日期‘2023-04-01’
时间: 2023-11-27 22:53:00 浏览: 126
可以使用 Elasticsearch 中的 range 查询在脚本中筛选 date 类型的值。具体操作如下:
1. 创建一个索引,包含一个 date 类型的字段,例如:
```
PUT my_index
{
"mappings": {
"properties": {
"date_field": {
"type": "date"
}
}
}
}
```
2. 插入一些测试数据,例如:
```
PUT my_index/_doc/1
{
"date_field": "2023-03-15T12:00:00Z"
}
PUT my_index/_doc/2
{
"date_field": "2023-04-15T12:00:00Z"
}
```
3. 使用 range 查询和脚本筛选符合条件的文档,例如:
```
GET my_index/_search
{
"query": {
"bool": {
"must": [
{
"script": {
"script": {
"source": "doc['date_field'].value.isAfter('2023-03-01T00:00:00Z') && doc['date_field'].value.isBefore('2023-04-01T00:00:00Z')",
"lang": "painless"
}
}
}
]
}
}
}
```
这个查询会返回 `id` 为 `1` 的文档,因为它的日期在 2023 年 3 月 1 日和 4 月 1 日之间。
阅读全文