WORDPRESS 使用结巴实现搜索中文分词

sadwind2024-04-08笔记416

详细安装及说明参考以下,已经有比较详细的教程了:

https://cloud.tencent.com/developer/article/2221841

GITHUB:https://github.com/ixqbar/phpjieba

下面说一下,几个注意点,我用的是宝塔面板,安装了几个PHP版本,因为我试了几次都没有成功,尝试了几次才成功:

1,第一次安装时,没有指定目录,默认安装到root文件夹下,可能权限问题导致错误,后来改到其它目录。

2,官方说明此插件(扩展)是支持PHP5/PHP7的,我的WORDPRESS用的是PHP7.1,不知道是不是和这个有关系,后来将PHP版本改到7.0

3,注意 指定恰当的路径:./configure –with-php-config=/usr/local/php/bin/php-config 我的PHP7.0是这样的:./configure –with-php-config=/www/server/php/70/bin/php-config

4,修改php.ini时,jieba.dict_path=/root/phpjieba/cjieba/dict ,后面的路径要用自己实际的,我的是jieba.dict_path=/www/server/phpjieba/cjieba/dict

5,如果是WORDPRESS,别忘记在functions.php中加上以下代码(当然之前操作完成,别忘了重启PHP):

 function custom_search( $search_result, $wp_query ) {
  global $wpdb;
  if( !$wp_query->is_search ) {
   return $search_result; 
  }
  if( !isset( $wp_query->query_vars ) ) {
   return $search_result; 
  }$key_string=$wp_query->query_vars['s'];
  $keywords =jieba($key_string);
  if ( count( $keywords ) > 0 ) {
   $search_result = '';
   foreach ( $keywords as $keyword ) {
    if ( !empty( $keyword ) ) {
     $keywords = '%' . esc_sql( $keyword ) . '%';
     $search_result .= " 
      AND (
       {$wpdb->posts}.post_title LIKE '{$keywords}'
        OR {$wpdb->posts}.post_content LIKE '{$keywords}'
        OR {$wpdb->posts}.ID IN (
         SELECT distinct post_id         FROM {$wpdb->postmeta}
         WHERE meta_value LIKE '{$keywords}'
        )
      ) ";
    }
   }
  }
  return $search_result;
 }
 add_filter( 'posts_search','custom_search', 10, 2 );


relate content

php转换中文简繁体

数据库中数据都是简体中文,而港台海外用户一般都用繁体,所以都搜不到内容。正在想法实现网站用户搜索,将用户搜入的繁体转换成简体,从而得到想要的结果。通过opencc4php 扩展实现简繁体转化 ,ope...

VUE学习:十三.代码管理

前言前端开发中对代码的处理:代码的存储、代码的管控、代码的提交与合并#1.代码仓库以gitlab 为例配置 ssh权限#2.代码管理简单项目分支dev:开发分支,直接在 dev 上进行开发,测试环境没...

sphinx 搜索 服务器重启后操作步骤

/www/server/sphinx-3.4.1/bin/indexer -c /www/server/sphinx-3.4.1/etc/icms.conf --all /www/server/sph...

使用FunAdmin二次开发 新建一个应用需要哪些东西

backend是FunAdmin默认的后台应用。1,先建一个数据表,如fun_dealer.2,根据表建一个模型,如:app/backend/model/Dealer.php3,根据表名,建一个控制器...

如何记数据库中数据重新恢复ID连续

这是一个不是问题的问题,只是针对一些强迫症才有这种想法。大家都知道数据库中的记录主键ID是自增连续的,如果删除了某一行数据,再添加新数据,那条被删除的ID也不会再出现了,对于一些强迫症来说,看着ID不...

VUE学习:五.UI 框架

前言如果你想快速开发一款应用,并且不想过多的操心页面 UI 的内容,比如你不想去实现一个下拉 UI 组件或设计一个 icon 图标,那么我们可以使用现有的别人做...

Post Reply    

◎Welcome to participate in the discussion.