function apachesolr_nodeapi_mass_update in Apache Solr Search 6.2
Same name and namespace in other branches
- 5.2 apachesolr.index.inc \apachesolr_nodeapi_mass_update()
- 6 apachesolr.index.inc \apachesolr_nodeapi_mass_update()
1 call to apachesolr_nodeapi_mass_update()
- apachesolr_cron_check_node_table in ./
apachesolr.index.inc - hook_cron() helper to try to make {apachesolr_search_node} consistent with {node}.
File
- ./
apachesolr.index.inc, line 371 - Functions used when indexing content to Apache Solr.
Code
function apachesolr_nodeapi_mass_update($nodes) {
if (empty($nodes)) {
return TRUE;
}
if (variable_get('apachesolr_read_only', APACHESOLR_READ_WRITE) == APACHESOLR_READ_ONLY) {
return TRUE;
}
$published_ids = array();
$unpublished_ids = array();
foreach ($nodes as $node) {
if ($node->status) {
$published_ids[$node->nid] = apachesolr_document_id($node->nid);
}
else {
$unpublished_ids[$node->nid] = apachesolr_document_id($node->nid);
}
}
$time = time();
try {
$solr = apachesolr_get_solr();
$solr
->deleteByMultipleIds($unpublished_ids);
apachesolr_index_set_last_updated(time());
// There was no exception, so update the table.
if ($published_ids) {
db_query("UPDATE {apachesolr_search_node} SET changed = %d, status = 1 WHERE nid IN (" . db_placeholders($published_ids) . ")", array_merge(array(
$time,
), array_keys($published_ids)));
}
if ($unpublished_ids) {
db_query("UPDATE {apachesolr_search_node} SET changed = %d, status = 0 WHERE nid IN (" . db_placeholders($unpublished_ids) . ")", array_merge(array(
$time,
), array_keys($unpublished_ids)));
}
return TRUE;
} catch (Exception $e) {
watchdog('Apache Solr', nl2br(check_plain($e
->getMessage())), NULL, WATCHDOG_ERROR);
return FALSE;
}
}