public function ElasticsearchConnectorSearchApiHighlight::preprocessSearchQuery in Elasticsearch Connector 7
Same name and namespace in other branches
- 7.5 modules/elasticsearch_connector_search_api/includes/processor_highlight.inc \ElasticsearchConnectorSearchApiHighlight::preprocessSearchQuery()
- 7.2 modules/elasticsearch_connector_search_api/includes/processor_highlight.inc \ElasticsearchConnectorSearchApiHighlight::preprocessSearchQuery()
Calls processKeys() for the keys and processFilters() for the filters.
Overrides SearchApiAbstractProcessor::preprocessSearchQuery
File
- modules/
elasticsearch_connector_search_api/ includes/ processor_highlight.inc, line 139 - Contains the SearchApiHighlight class.
Class
- ElasticsearchConnectorSearchApiHighlight
- @file Contains the SearchApiHighlight class.
Code
public function preprocessSearchQuery(SearchApiQuery $query) {
if (!$this
->supportsIndex($query
->getIndex())) {
throw new SearchApiException("This processor is only available for Elasticsearch connector search api implementation.");
}
$fields = $query
->getFields();
if (!empty($fields)) {
$params['highlight']['pre_tags'] = array(
$this->options['prefix'],
);
$params['highlight']['post_tags'] = array(
$this->options['suffix'],
);
$params['highlight']['fragment_size'] = $this->options['excerpt_length'];
$params['highlight']['number_of_fragments'] = $this->options['excerpt_fragments'];
foreach ($fields as $field) {
$params['highlight']['fields'][$field] = new stdClass();
}
$elasticsearch_processors_params = $query
->getOption('elasticsearch_processors_params', array());
$elasticsearch_processors_params['highlight'] = $params['highlight'];
$query
->setOption('elasticsearch_processors_params', $elasticsearch_processors_params);
}
}