You are here

protected function SearchApiElasticsearchConnector::correctFilter in Elasticsearch Connector 7.2

Same name and namespace in other branches
  1. 7.5 modules/elasticsearch_connector_search_api/service.inc \SearchApiElasticsearchConnector::correctFilter()
  2. 7 modules/elasticsearch_connector_search_api/service.inc \SearchApiElasticsearchConnector::correctFilter()

Helper function that check if filter is set correct.

1 call to SearchApiElasticsearchConnector::correctFilter()
SearchApiElasticsearchConnector::parseFilter in modules/elasticsearch_connector_search_api/service.inc
Recursively parse Search API filters.

File

modules/elasticsearch_connector_search_api/service.inc, line 972
Provides a Elasticsearch-based service class for the Search API using Elasticsearch Connector module.

Class

SearchApiElasticsearchConnector
Search service class.

Code

protected function correctFilter($filter_assoc, $index_fields, $ignored_field_id = '') {
  if (!isset($filter_assoc['field_id']) || !isset($filter_assoc['filter_value']) || !isset($filter_assoc['filter_operator'])) {

    // TODO: When using views the sort field is comming as a filter and messing with this section.
    // throw new Exception(t('Incorrect filter criteria is using for searching!'));
  }
  $field_id = $filter_assoc['field_id'];
  if (!isset($index_fields[$field_id])) {
    throw new Exception(t(':field_id Undefined field ! Incorrect filter criteria is using for searching!', array(
      ':field_id' => $field_id,
    )));
  }

  // Check operator.
  if (empty($filter_assoc['filter_operator'])) {
    throw new Exception(t('Empty filter operator for :field_id field! Incorrect filter criteria is using for searching!', array(
      ':field_id' => $field_id,
    )));
  }

  // If field should be ignored, we skip.
  if ($field_id === $ignored_field_id) {
    return TRUE;
  }
  return TRUE;
}