public function SearchApiElasticsearchConnector::search in Elasticsearch Connector 7.5
Same name and namespace in other branches
- 7 modules/elasticsearch_connector_search_api/service.inc \SearchApiElasticsearchConnector::search()
- 7.2 modules/elasticsearch_connector_search_api/service.inc \SearchApiElasticsearchConnector::search()
Overrides search().
Overrides SearchApiServiceInterface::search
1 call to SearchApiElasticsearchConnector::search()
- SearchApiElasticsearchConnector::getAutocompleteSuggestions in modules/
elasticsearch_connector_search_api/ service.inc - Implements SearchApiAutocompleteInterface::getAutocompleteSuggestions().
File
- modules/
elasticsearch_connector_search_api/ service.inc, line 624 - Provides a Elasticsearch-based service class for the Search API using Elasticsearch Connector module.
Class
- SearchApiElasticsearchConnector
- Search service class.
Code
public function search(SearchApiQueryInterface $query, $suggestions = FALSE) {
// Results.
$search_result = array(
'result count' => 0,
);
// Get index
$index = $query
->getIndex();
$params = $this
->getIndexParam($index, TRUE);
// Check elasticsearch index.
if (!$this
->checkClient()) {
return $search_result;
}
$query
->setOption('ElasticParams', $params);
// Build Elastica query.
$params = $this
->buildSearchQuery($query);
// Add facets.
$this
->addSearchFacets($params, $query);
$this
->buildAdditionalProcessorQuery($params, $query);
// Alter the query and params.
drupal_alter('elasticsearch_connector_search_api_query', $query, $params);
try {
// Do search.
$search_response = $this->elasticsearchClient
->search($params);
$response = $search_response
->getRawResponse();
// TODO: Fix the logging to be accurate!
if (!empty($index->options['collect_index_statistics']) && !$suggestions && class_exists('SearchApiElasticsearchConnectorStats')) {
$stats = new SearchApiElasticsearchConnectorStats($query, $this);
$stats
->logStat($response);
}
// Parse response.
$results = $this
->parseSearchResponse($response, $query);
drupal_alter('elasticsearch_connector_search_api_results', $results, $query, $response);
} catch (Exception $e) {
watchdog('Elasticsearch Search API', check_plain($e
->getMessage()), array(), WATCHDOG_ERROR);
return array(
'result count' => 0,
);
}
return $results;
}