分享

php mysql 分词搜索匹配度高的排名靠前代码

发布于:2019-09-05 08:51    阅读次数:131    作者:云码素材    分类:行业经验    关键词:分词搜索  

php mysql 分词搜索匹配度高的排名靠前如何实现?我这里运用的是首先用第三方在线分词,再用分出来的词进行like模糊查询,case when like then else end进行排序。


一.首先得到分词数组

$fenci=file_get_contents("http://116.196.101.207/get.php?source=".$keyword."&param1=0&param2=1&json=1");
$fenci_array=json_decode($fenci,true);

二.循环分词数组得到where条件,和排序条件

if(!empty($fenci_array)) {
    foreach ($fenci_array as $key => $val) {
        $key_a[$key] = $val["t"];
        $where .= " OR post_title like '%{$val["t"]}%' OR post_content like 
        '%{$val["t"]}%'";
        $order_str .= "((CASE WHEN `post_title` LIKE '%{$val["t"]}%' then " . 
        (1000 - 10 * $key) .
         " else 0 end)+(CASE WHEN `post_content` LIKE '%{$val["t"]}%' then " . 
         (1000 - 10 * $key) . 
         " else 0 end))+";

    }
    $order_str=rtrim($order_str,'+')." DESC";
}
else
{
    $order_str=" create_time DESC";
}

三.输出打印sql语句

$sql="select * from cmf_portal_post $where $order_str";
echo $sql;exit;


推荐源码
查看更多

免费领
签到客服赚钱 反馈 回顶部