function SearchIndex::clear

Same name and namespace in other branches
  1. 9 core/modules/search/src/SearchIndex.php \Drupal\search\SearchIndex::clear()
  2. 10 core/modules/search/src/SearchIndex.php \Drupal\search\SearchIndex::clear()
  3. 11.x core/modules/search/src/SearchIndex.php \Drupal\search\SearchIndex::clear()

Overrides SearchIndexInterface::clear

1 call to SearchIndex::clear()
SearchIndex::index in core/modules/search/src/SearchIndex.php
Updates the full-text search index for a particular item.

File

core/modules/search/src/SearchIndex.php, line 219

Class

SearchIndex
Provides search index management functions.

Namespace

Drupal\search

Code

public function clear($type = NULL, $sid = NULL, $langcode = NULL) {
    try {
        $query_index = $this->connection
            ->delete('search_index');
        $query_dataset = $this->connection
            ->delete('search_dataset');
        if ($type) {
            $query_index->condition('type', $type);
            $query_dataset->condition('type', $type);
            if ($sid) {
                $query_index->condition('sid', $sid);
                $query_dataset->condition('sid', $sid);
                if ($langcode) {
                    $query_index->condition('langcode', $langcode);
                    $query_dataset->condition('langcode', $langcode);
                }
            }
        }
        $query_index->execute();
        $query_dataset->execute();
    } catch (\Exception $e) {
        throw new SearchIndexException("Failed to clear index for type '{$type}', sid '{$sid}' and langcode '{$langcode}'", 0, $e);
    }
    if ($type) {
        // Invalidate all render cache items that contain data from this index.
        $this->cacheTagsInvalidator
            ->invalidateTags([
            'search_index:' . $type,
        ]);
    }
    else {
        // Invalidate all render cache items that contain data from any index.
        $this->cacheTagsInvalidator
            ->invalidateTags([
            'search_index',
        ]);
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.