我的文档中有两个日期字段,分别是date_field_1
和date_field_2
。所有文档都有date_feild_1
数据,但date_filed_2
数据中很少有空字符串。因此,date_field_1
被标记为日期字段,date_field_2
被标记为文本字段。
现在当我尝试执行查询时,
{"range": {"date_field_1": {"gte": "2022-05-23", "lte": "2022-05-23"}}}
我得到正确的结果。但是当我尝试同样的date_field_2
我得到空的结果。是否有一种方法可以将范围查询应用于date_field_2
而不是空文档?
你最终可以使用regex:
{
"range": {
"date_field_2": "2022-0[3-6]-[0-9][0-9]"
}
}
上述查询将返回2022-03-01
和2022-06-30
之间的任何内容
基本上您请求的数据包含在date_field_2
中包含2022-0
的值,然后是3-6
范围内的任何数字,然后是-
和0-9
范围内的任何2个数字
请注意它也会返回错误的值,如果它们存在(如2022-03-87
),但这是一个不同的故事