You are here

protected function SearchApiSolrBackend::filterDuplicateAutocompleteSuggestions in Search API Solr 8.2

Same name and namespace in other branches
  1. 8.3 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()

Parameters

$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
Autocompletion suggestions for some user input using Spellcheck component.
SearchApiSolrBackend::getSuggesterSuggestions in src/Plugin/search_api/backend/SearchApiSolrBackend.php
Autocompletion suggestions for some user input using Suggester component.

File

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

Class

SearchApiSolrBackend
Apache Solr backend for search api.

Namespace

Drupal\search_api_solr\Plugin\search_api\backend

Code

protected function filterDuplicateAutocompleteSuggestions(&$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]);
    }
  }
}