public function SearchApiSolrBackend::deleteAllIndexItems in Search API Solr 8.2
Same name and namespace in other branches
- 8.3 src/Plugin/search_api/backend/SearchApiSolrBackend.php \Drupal\search_api_solr\Plugin\search_api\backend\SearchApiSolrBackend::deleteAllIndexItems()
- 8 src/Plugin/search_api/backend/SearchApiSolrBackend.php \Drupal\search_api_solr\Plugin\search_api\backend\SearchApiSolrBackend::deleteAllIndexItems()
- 4.x src/Plugin/search_api/backend/SearchApiSolrBackend.php \Drupal\search_api_solr\Plugin\search_api\backend\SearchApiSolrBackend::deleteAllIndexItems()
Deletes all the items from the index.
Parameters
\Drupal\search_api\IndexInterface $index: The index for which items should be deleted.
string|null $datasource_id: (optional) If given, only delete items from the datasource with the given ID.
Throws
\Drupal\search_api\SearchApiException Thrown if an error occurred while trying to delete indexed items.
Overrides BackendSpecificInterface::deleteAllIndexItems
1 call to SearchApiSolrBackend::deleteAllIndexItems()
- SearchApiSolrBackend::removeIndex in src/
Plugin/ search_api/ backend/ SearchApiSolrBackend.php - Removes an index from this server.
File
- src/
Plugin/ search_api/ backend/ SearchApiSolrBackend.php, line 890
Class
- SearchApiSolrBackend
- Apache Solr backend for search api.
Namespace
Drupal\search_api_solr\Plugin\search_api\backendCode
public function deleteAllIndexItems(IndexInterface $index, $datasource_id = NULL) {
// Since the index ID we use for indexing can contain arbitrary
// prefixes, we have to escape it for use in the query.
$connector = $this
->getSolrConnector();
$query = '+index_id:' . $this->queryHelper
->escapePhrase($this
->getIndexId($index));
$query .= ' +hash:' . $this->queryHelper
->escapePhrase(Utility::getSiteHash());
if ($datasource_id) {
$query .= ' +' . $this
->getSolrFieldNames($index)['search_api_datasource'] . ':' . $this->queryHelper
->escapePhrase($datasource_id);
}
$update_query = $connector
->getUpdateQuery();
$update_query
->addDeleteQuery($query);
$connector
->update($update_query);
\Drupal::state()
->set('search_api_solr.' . $index
->id() . '.last_update', \Drupal::time()
->getCurrentTime());
}