function
getArticleRecommend(
$articleid
,
$top
= 5){
if
(
$cache
= CacheHelper::getCache()){
return
$cache
;
}
try
{
$articleid
=
intval
(
$articleid
);
$m
=
new
TagMapModel();
$all_tags
=
$m
->getAllGroupByArticleId();
$finded
=
$all_tags
[
$articleid
];
unset(
$all_tags
[
$articleid
]);
$jaccard_arr
= [];
foreach
(
$all_tags
as
$key
=>
$value
) {
$intersect
=
array_intersect
(
$finded
,
$value
);
$union
=
array_unique
(
array_merge
(
$finded
,
$value
));
$jaccard_arr
[
$key
] = (float)(
count
(
$intersect
) /
count
(
$union
));
}
arsort(
$jaccard_arr
);
$jaccard_keys
=
array_keys
(
$jaccard_arr
);
array_splice
(
$jaccard_keys
,
$top
);
$articleModels
=
new
\Api\Model\ArticleModel();
$recommendArticles
=
$articleModels
->getRecommendByTag(
$jaccard_keys
);
CacheHelper::setCache(
$recommendArticles
, 604800);
return
$recommendArticles
;
}
catch
(\Exception
$e
) {
throw
new
\Exception(
"获取推荐文章错误"
);
}
}