我有yyyy-MM-dd格式的日期字段的文档.有没有办法只根据字段的年份部分进行过滤.
例:
{'name': 'a', 'born': '1984-11-22'},
{'name': 'b', 'born': '1984-12-12'},
{'name': 'c', 'born': '1985-10-22'},
Run Code Online (Sandbox Code Playgroud)
我想做一个术语/范围过滤器来查找1984年出生的人.任何帮助都非常感谢.
"query": {
"filtered": {
"filter": {
"range": {
"born": {
"gte": "1984||/y",
"lte": "1984||/y",
"format": "yyyy"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
除了添加格式之外,这还需要舍入输入年份参数.如果没有按年份舍入,则范围查询无法按预期工作.尝试使用多种日期格式,如dateOptionalTime,日期等.
有关如何使用日期数学的详细信息,请参阅https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html
是的,您可以使用range
过滤器并指定年份来完成此操作format
:
{
"constant_score": {
"filter": {
"range" : {
"born" : {
"gte": "1984",
"lte": "1984",
"format": "yyyy"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4304 次 |
最近记录: |