WordPress 实现自动中文分词搜索的方法

在学做网站论坛之前的建站教程中,我们介绍了WordPress搜索功能的制作方法,这也是WordPress程序的…

在学做网站论坛之前的建站教程中,我们介绍了WordPress搜索功能的制作方法,这也是WordPress程序的默认搜索方法,这种方法是将用户的搜索词全部匹配后才能得到结果。如果用于搜索词很长的话,很大可能是无法得到相关结果的。

为了防止用户长搜索词匹配不了结果的问题,可以将用户的搜索词进行分词,然后对分词的每个词进行匹配,得到结果。下面学做网站论坛介绍一下WordPress 实现自动分词搜索的方法

Wordpress 实现自动分词搜索演示

方法/步骤

  1. 安装Wordpress 自动分词搜索插件,这个插件的功能就是将搜索词通过API接口进行分词。插件下载:https://pan.baidu.com/s/1JpOtYtiGK2guxX9osdnDVA 提取码: 5j9q ;
  2. 在自己网站后台安装这款插件,不需要做任何设置;
  3. 改造一下自己的搜索页模板search.php,将默认循环代码替换成以下的代码:
    
    
    <?php
    $sousuociarr=explode(' ',$s);//转换成搜索词数组
    //获取词数量
    if(count($sousuociarr)>5){
    $cishu = 20;
    }else{
    $cishu = 30;
    }
    /*查询主站*/
    $varszhuzhan = array();
    for($i=0;$i<count($sousuociarr);$i++){
    $taglength = mb_strlen($sousuociarr[$i],'utf-8');//获取长度
    if($taglength > 1){
    $vars = $wpdb -> get_results("SELECT * FROM `wp_posts` where post_status='publish' and post_type='post' and post_title like '%$sousuociarr[$i]%' LIMIT $cishu", ARRAY_A);
    $varszhuzhan = array_merge($varszhuzhan, $vars);//合并数组
    }
    }
    $varszhuzhan = array_unique($varszhuzhan, SORT_REGULAR);//去重处理
    ?>
    <ul class="mb_body_list clearfix">
    <?php
    foreach($varszhuzhan as $varzz){?>
    <li><a href="<?php echo get_permalink($varzz['ID'])?>" target="_blank"><?php echo $varzz['post_title'];?></a></li>
    <?php }?>
    </ul>
  4. 这样就可以实现用户在搜索时,自动将搜索词分词,然后将每个词进行匹配,得到结果了,实现了分词搜索功能。
类别:WordPress开发

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册