You are here

protected function SearchApiSolrBackend::filterDuplicateAutocompleteSuggestions in Search API Solr 8.3

Same name and namespace in other branches
  1. 8.2 src/Plugin/search_api/backend/SearchApiSolrBackend.php \Drupal\search_api_solr\Plugin\search_api\backend\SearchApiSolrBackend::filterDuplicateAutocompleteSuggestions()
  2. 4.x src/Plugin/search_api/backend/SearchApiSolrBackend.php \Drupal\search_api_solr\Plugin\search_api\backend\SearchApiSolrBackend::filterDuplicateAutocompleteSuggestions()

Removes duplicated autocomplete suggestions from the given array.

Parameters

array $suggestions: The array of suggestions.

3 calls to SearchApiSolrBackend::filterDuplicateAutocompleteSuggestions()
SearchApiSolrBackend::getAutocompleteSuggestions in src/Plugin/search_api/backend/SearchApiSolrBackend.php
Implements autocomplete compatible to AutocompleteBackendInterface.
SearchApiSolrBackend::getSpellcheckSuggestions in src/Plugin/search_api/backend/SearchApiSolrBackend.php
SearchApiSolrBackend::getSuggesterSuggestions in src/Plugin/search_api/backend/SearchApiSolrBackend.php

File

src/Plugin/search_api/backend/SearchApiSolrBackend.php, line 3406

Class

SearchApiSolrBackend
Apache Solr backend for search api.

Namespace

Drupal\search_api_solr\Plugin\search_api\backend

Code

protected function filterDuplicateAutocompleteSuggestions(array &$suggestions) {
  $added_suggestions = [];
  $added_urls = [];

  /** @var \Drupal\search_api_autocomplete\Suggestion\SuggestionInterface $suggestion */
  foreach ($suggestions as $key => $suggestion) {
    if (!in_array($suggestion
      ->getSuggestedKeys(), $added_suggestions, TRUE) || !in_array($suggestion
      ->getUrl(), $added_urls, TRUE)) {
      $added_suggestions[] = $suggestion
        ->getSuggestedKeys();
      $added_urls[] = $suggestion
        ->getUrl();
    }
    else {
      unset($suggestions[$key]);
    }
  }
}