You are here

protected function SearchApiElasticsearchBackend::setFiltersConjunction in Elasticsearch Connector 8

Helper function thaht set filters conjunction

1 call to SearchApiElasticsearchBackend::setFiltersConjunction()
SearchApiElasticsearchBackend::parseFilter in src/Plugin/search_api/backend/SearchApiElasticsearchBackend.php
Recursively parse Search API filters.

File

src/Plugin/search_api/backend/SearchApiElasticsearchBackend.php, line 814
Contains the SearchApiElasticsearchBackend object.

Class

SearchApiElasticsearchBackend
Plugin annotation @SearchApiBackend( id = "elasticsearch", label = @Translation("Elasticsearch"), description = @Translation("Index items using an Elasticsearch server.") )

Namespace

Drupal\elasticsearch_connector\Plugin\search_api\backend

Code

protected function setFiltersConjunction(&$filters, $conjunction) {
  if (count($filters) > 1) {
    if ($conjunction === 'OR') {
      $filters = array(
        array(
          'or' => $filters,
        ),
      );
    }
    elseif ($conjunction === 'AND') {
      $filters = array(
        array(
          'and' => $filters,
        ),
      );
    }
    else {
      throw new \Exception(t('Undefined conjunction :conjunction! Available values are :avail_conjunction! Incorrect filter criteria is using for searching!', array(
        ':conjunction!' => $conjunction,
        ':avail_conjunction' => $conjunction,
      )));
      return NULL;
    }
  }
  return $filters;
}