Clears a part of or the entire search index.
$sid: (optional) The ID of the item to remove from the search index. If specified, $module must also be given. Omit both $sid and $module to clear the entire search index.
$module: (optional) The machine-readable name of the module for the item to remove from the search index.
$reindex: (optional) Boolean to specify whether reindexing happens.
$langcode: (optional) Language code for the operation. If not provided, all index records for the $sid will be deleted.
function search_reindex($sid = NULL, $module = NULL, $reindex = FALSE, $langcode = NULL) {
if ($module == NULL && $sid == NULL) {
module_invoke_all('search_reset');
}
else {
$query = db_delete('search_dataset')
->condition('sid', $sid)
->condition('type', $module);
if (!empty($langcode)) {
$query
->condition('langcode', $langcode);
}
$query
->execute();
$query = db_delete('search_index')
->condition('sid', $sid)
->condition('type', $module);
if (!empty($langcode)) {
$query
->condition('langcode', $langcode);
}
$query
->execute();
// Don't remove links if re-indexing.
if (!$reindex) {
db_delete('search_node_links')
->condition('sid', $sid)
->condition('type', $module)
->execute();
}
}
}