diff -u b/contrib/search_api_facetapi/plugins/facetapi/query_type_date.inc b/contrib/search_api_facetapi/plugins/facetapi/query_type_date.inc --- b/contrib/search_api_facetapi/plugins/facetapi/query_type_date.inc +++ b/contrib/search_api_facetapi/plugins/facetapi/query_type_date.inc @@ -55,7 +55,12 @@ } if ($activeItems = $this->adapter->getActiveItems($this->facet)) { - $date_query = new SearchApiQueryFilter('OR'); + $tags = array('facet:' . $this->facet['field']); + $operator = 'AND'; + if ($settings['operator'] == FACETAPI_OPERATOR_OR) { + $operator = 'OR'; + } + $date_query = $query->createFilter($operator, $tags); foreach($activeItems as $activeItem) { $field = $this->facet['field']; $filter = $this->createRangeFilter($activeItem['value']); @@ -290,9 +295,6 @@ $build[$parent]['#item_children'][$value] = &$build[$value]; $build[$value]['#item_parents'][$parent] = $parent; } - - // Stores the last value iterated over. - //$parent = $value; } if (empty($raw_values)) { only in patch2: unchanged: --- a/contrib/search_api_facetapi/plugins/facetapi/adapter.inc +++ b/contrib/search_api_facetapi/plugins/facetapi/adapter.inc @@ -284,10 +284,7 @@ class SearchApiFacetapiAdapter extends FacetapiAdapter { '#options' => $granularity_options, '#default_value' => isset($options['date_granularity']) ? $options['date_granularity'] : FACETAPI_DATE_MINUTE, ); - - // Date facets don't support the "OR" operator (for now). - $form['global']['operator']['#access'] = FALSE; - + $default_value = FACETAPI_DATE_YEAR; if (isset($options['date_granularity_min'])) { $default_value = $options['date_granularity_min'];