function recommender_precompute_mlt in Recommender API 7.5
File
- ./
recommender.module, line 130 - Providing generic recommender system algorithms.
Code
function recommender_precompute_mlt($mlt_delta, $nid_list) {
if (!module_exists('apachesolr_search')) {
return FALSE;
}
$block = apachesolr_search_mlt_block_load($mlt_delta);
if ($block) {
$env_id = !empty($block['mlt_env_id']) ? $block['mlt_env_id'] : '';
try {
$solr = apachesolr_get_solr($env_id);
foreach ($nid_list as $nid) {
$docs = apachesolr_search_mlt_suggestions($block, apachesolr_document_id($nid), $solr);
if (!empty($docs)) {
db_delete('recommender_similarity')
->condition('source_id', $nid)
->condition('recommender', $mlt_delta)
->execute();
$rows = array();
foreach ($docs as $doc) {
// attention: here we can't retrieve similarity score because MLT block don't specify that.
// to retrieve similarity score, use customized query.
$rows[] = array(
$nid,
$doc->entity_id,
);
}
recommender_insert_rows('similarity', $mlt_delta, $rows);
}
#var_dump($nid, $docs);
}
} catch (Exception $e) {
watchdog('Apache Solr', nl2br(check_plain($e
->getMessage())), NULL, WATCHDOG_ERROR);
}
}
}