我想得到任何有日期字段dateField的文档,year(dateField) = 2016。
简而言之,我需要得到2016年通知dateField的所有文件。
发布于 2016-08-05 11:39:09
如果只想检查一年,最简单的方法是使用range过滤器,检查dateField是否在2016年1月1日至12月31日之间:
POST index/_search
{
"query": {
"bool": {
"filter": [
{
"range": {
"dateField": {
"gte": "2016-01-01T00:00:00.000Z",
"lt": "2017-01-01T00:00:00.000Z"
}
}
}
]
}
}
}还有两种解决方案:
year字段,以便使用term或range查询/筛选器对其进行搜索。script筛选器。第一个选项更有表现力,但如果您想尝试第二个选项,则如下所示:
POST index/_search
{
"query": {
"bool": {
"filter": [
{
"script": {
"script": {
"inline": "doc.dateField.date.getYear() == year",
"params": {
"year": 2016
}
}
}
}
]
}
}
}https://stackoverflow.com/questions/38788274
复制相似问题