elasticsearch 按日期搜索语句
时间: 2024-10-08 07:03:52 浏览: 8
Elasticsearch 提供了一套强大的搜索引擎功能,其中对日期字段的搜索非常直观。如果你想按照日期进行查询,可以使用其内置的日期范围查询 (range query) 或者日期数学运算符。以下是两种常见的操作:
1. **日期范围查询**:
```json
GET /your_index/_search
{
"query": {
"range": {
"timestamp_field": {
"gte": "2022-01-01",
"lte": "2022-12-31"
}
}
}
}
```
这里 `timestamp_field` 是你的文档中存储日期的字段名,`gte` 表示大于等于,`lte` 表示小于等于。
2. **日期数学运算符**:
如果你需要基于当前时间、过去的时间等进行查询,可以使用 `boosting term query` 结合 `script_score`:
```json
GET /your_index/_search
{
"query": {
"function_score": {
"filter": {
"term": { "timestamp_field": "now-7d" } // 查询过去一周的数据
},
"boost_mode": "multiply", // 可选,这里表示乘法运算
"script_score": {
"source": "doc['timestamp_field'].value"
}
}
}
}
```