You are here

protected function ElasticsearchConnectorSearchApiHighlight::parseHighlightFields in Elasticsearch Connector 7.5

Same name and namespace in other branches
  1. 7 modules/elasticsearch_connector_search_api/includes/processor_highlight.inc \ElasticsearchConnectorSearchApiHighlight::parseHighlightFields()
  2. 7.2 modules/elasticsearch_connector_search_api/includes/processor_highlight.inc \ElasticsearchConnectorSearchApiHighlight::parseHighlightFields()

Transform the response

Parameters

array $result:

SearchApiQueryInterface $query:

Return value

array $result

1 call to ElasticsearchConnectorSearchApiHighlight::parseHighlightFields()
ElasticsearchConnectorSearchApiHighlight::postprocessSearchResults in modules/elasticsearch_connector_search_api/includes/processor_highlight.inc
Does nothing.

File

modules/elasticsearch_connector_search_api/includes/processor_highlight.inc, line 167
Contains the SearchApiHighlight class.

Class

ElasticsearchConnectorSearchApiHighlight
@file Contains the SearchApiHighlight class.

Code

protected function parseHighlightFields($result, SearchApiQueryInterface $query) {
  $fields = $query
    ->getFields();
  $result_fields =& $result['fields'];
  if (!empty($result['highlight']) && !empty($fields)) {
    foreach ($fields as $field) {
      if (isset($result_fields[$field]) && !empty($result['highlight'][$field])) {
        if ($this->options['highlight'] != 'never') {
          $result_fields[$field] = implode($this->options['concatenator'], $result['highlight'][$field]);
        }
        if ($this->options['excerpt']) {
          if (!isset($result['excerpt'])) {
            $result['excerpt'] = implode($this->options['concatenator'], $result['highlight'][$field]);
          }
          else {
            $result['excerpt'] .= $this->options['concatenator'] . implode($this->options['concatenator'], $result['highlight'][$field]);
          }
        }
      }
    }
  }
  return $result;
}