ES表达式如何检索某个日期为2023年的数据
比如已有日期为:2022年1月1日,2023年1月1日
你可以使用Elasticsearch 的脚本字段(Script Fields)功能可以用于对字符串进行截取和过滤操作。DSL如下:
{
"query": {
"bool": {
"filter": {
"script": {
"script": {
"source": "doc['your_string_field'].value.substring(0, 3) == '2023'",
"lang": "painless"
}
}
}
}
}
}
这样效率比较低,建议使用date类型,添加format类型 如下
"createTime" : {
"type":"date",
"format": "strict_date_optional_time||yyyy-MM-dd'T'HH:mm:ssZ||yyyy-MM-dd HH:mm:ss||yyyy年MM月dd日||yyyy-MM-dd||epoch_millis"
}
然后再用pai的range 进行范围搜索。
如果对你有帮助,麻烦点一下采纳,谢谢。