Skip to content

Commit 1ac597f

Browse files
authored
Add year interval for DateHistogramFacet
1 parent 7cc4484 commit 1ac597f

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

elasticsearch_dsl/faceted_search.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,10 @@ def get_value_filter(self, filter_value):
168168
)
169169

170170

171+
def _date_interval_year(d):
172+
return d.replace(year=d.year+1, day=(28 if d.month == 2 and d.day == 29 else d.day))
173+
174+
171175
def _date_interval_month(d):
172176
return (d + timedelta(days=32)).replace(day=1)
173177

@@ -188,6 +192,8 @@ class DateHistogramFacet(Facet):
188192
agg_type = "date_histogram"
189193

190194
DATE_INTERVALS = {
195+
"year": _date_interval_year,
196+
"1Y": _date_interval_year,
191197
"month": _date_interval_month,
192198
"1M": _date_interval_month,
193199
"week": _date_interval_week,

tests/test_faceted_search.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ def test_date_histogram_facet_with_1970_01_01_date():
151151
@pytest.mark.parametrize(
152152
["interval_type", "interval"],
153153
[
154+
("interval", "year"),
155+
("calendar_interval", "year"),
154156
("interval", "month"),
155157
("calendar_interval", "month"),
156158
("interval", "week"),
@@ -160,6 +162,8 @@ def test_date_histogram_facet_with_1970_01_01_date():
160162
("fixed_interval", "day"),
161163
("interval", "hour"),
162164
("fixed_interval", "hour"),
165+
("interval", "1Y"),
166+
("calendar_interval", "1Y"),
163167
("interval", "1M"),
164168
("calendar_interval", "1M"),
165169
("interval", "1w"),

0 commit comments

Comments
 (0)