找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5469|回复: 0

[分享] 九步完成discuz论坛配置xunsearch讯搜进行全文搜索

[复制链接]
发表于 2021-11-21 09:00:13 | 显示全部楼层 |阅读模式 来自 河南省新乡市
一直觉得discuz自带的搜索功能太鸡肋,而百度又对我的论坛不怎么友好,一年前就知道有讯搜xunsearch,也知道有Sphinx,但尝试了一下,都没能成功,这次咬牙用了xunsearch,终于折腾成功了,现在每天都在正常使用。(声明:此贴为转载,仅适用于 帖子未分表,且不需要增量索引的情况,如果你的论坛已分表 或者需要增量索引,可联系飘仙付费处理
飘仙论坛的站内搜索已更换为 xunsearch,如果有需要协助部署的 可加我qq 858001217(不免费哦)
一、VPS系统选择
1、尝试阶段,服务器系统的选择有问题,我在阿里云尝试了32位的centos6.8,宣告失败了,因为有些组件版本太老,挨个更新容易出错。我还有个香港腾讯云的32位debian8.2,成功了,后来我把阿里云的更换成了64位的centos7.6,也成功了。(服务器我用wdcp面板v3.3.7,觉得没问题,需要注意的是php安装的时候选择php5.5版本以上吧,一般都会在这个版本以上,建议5.5或者5.6)
优点:新的服务器系统的很多功能都是最新的,不需要浪费精力,何况我还是个小白。
缺点:我的服务器是1G内存,装这个64位的,正常使用的时候内存占用到了64%,但是没有觉得明显的慢,所以也就用着了。讯搜不怎么占内存,但是听说您的数据超过10万级别后,搜索结果比较慢,不过这时候您也可以换个大的服务器了。
二、操作工具
2、得会用putty,用来输入些linux下的命令,putty到官方网站下,英文版的,安全,很简单,输入服务器账号root和密码就能登录开始安装了。
需要注意的:得把语言调成UTF,因为安装讯搜时有些代码是中文,方便大家阅读

三、论坛编码和备份数据
3、经过折腾,为了达到较好的体验,discuz的编码最好是UTF,这样整合讯搜就无缝了,因为讯搜就是utf的,我的论坛开始是GBK,后来整合出现乱码,为此我把我的GBK更换成了UTF,论坛升级到了X3.4版本,后台重新安装插件
记得备份好数据哦!阿里云后台做个镜像备份就妥了。数据库用的帝国备份王备份的,都挺方便。


四、安装讯搜xunsearch

4.1、putty登录,进去后是一个纯文字的框框,黑底白字,这也就是linux的系统了,刚进入的那个文件夹是根目录下的root文件夹,等下我们就把xunsearch下载在根目录的home文件夹下,复制粘贴以下代码:

  1. cd /home
复制代码
上面这句的意思是,进入根目录下的home文件夹
  1. wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
复制代码

上面这句的意思是,下载最新的xunsearch版本
  1. tar -xjf xunsearch-full-latest.tar.bz2
复制代码

上面这句的意思是,把下载到的xunsearch最新版本进行解压,解压后在home的文件夹里会出现一个文件夹,注意这个文件夹的名称,后面有一串数字,你不太会操作就登录ftp里面看看,也可以在putty里用dir这个单词看看,我解压后的目录名称是xunsearch-full-1.4.13
  1. cd xunsearch-full-1.4.13
复制代码
上面的代码是让你进入xunsearch的安装文件夹
  1. sh setup.sh
复制代码

上面这个sh的意思是执行一个脚本安装文件,这样就开始自动安装了。中间需要选择一下安装位置,默认是usr\local\xunsearch,确认按Y就行了,没必要改,我觉得。

接下来去倒杯茶安心等着,应该很快就会好了。
完事后可以试试这个代码
  1. /usr/local/xunsearch/bin/xs-ctl.sh restart
复制代码
上面是重启这个的代码,没报错就OK了,看上面的默认路径,看你要不要修改

五、软连接php
接下来重点来了,这个时候因为我的wdcp面板的php安装位置和你们不一样,我需要把php做个软连接。
  1. ln -s /www/wdlinux/apache_php-5.6.30/bin/php    /usr/local/bin/php   
复制代码

上面的代码就是软连接php,你可以到你的ftp中看看,看看你们版本,修改下php的版本号或者是位置。这步比较重要,不弄会报错。


到这个时候,就算是部署完毕 了,接下来要琢磨把discuz整合进去,首先说明下,我就整合了一个表,  帖子内容,用户名,发帖日期,版块名称,基本上也够了,如果你们需要整合其他的表,比如门户、日志什么的,请自行研究。
六、导入论坛帖子,进行索引生成搜索数据
这时候准备一个discuz.ini文件,你可以直接下载我的,解压缩后上传到 /usr/local/xunsearch/sdk/php/app/ 文件夹,那里面还有个demo.ini,不用管它,我们要弄的是这个新的discuz.ini
discuz.rar (255 Bytes, 下载次数: 41)


有了这个ini文件,咱么就在putty里粘贴下面的代码,已经是绝对路径,不用考虑文件夹和数据库的位置了
  1. /usr/local/xunsearch/sdk/php/util/Indexer.php --rebuild --source=mysql://root:dbpassword@localhost/dbname --sql="SELECT * FROM pre_forum_post" --project=discuz
复制代码

上面的这段代码是把论坛的帖子索引到讯搜里,每天早上在putty里执行一次也就差不多了,上面的这串代码,要注意修改几个地方:1、替换你的数据库密码dbpassword,2、替换你的数据库名称dbname 3、你的数据库表(我这里的就是帖子表pre_forum_post,包含回复的,如果你和我一样,就不需要动了),如果数据库账号不是root也更换下,其他的都不要动了

执行后就会出现开始把你的帖子进行索引,开始干活了。注意的是,虽然看起来索引马上就好,但是后台还是需要一定时间的,比如我的的vps是最差的,30000条数据,后台需要时间大概是8分钟。
七、生成可供网友访问的网站
那么索引完成后怎么让网友访问呢,那就需要执行下面的代码:
  1. /usr/local/xunsearch/sdk/php/util/SearchSkel.php discuz /www/web/minbaoku_com/public_html
复制代码

解释一下,这段代码相当于生成了一个网站,访问页面什么的都有了,需要修改的部分是后面的网站位置,我建议把它放在你的论坛的根目录下,这段话会让你的网站根目录下,自动生成一个discuz文件夹,比如我的网站在 /www/web/minbaoku_com/public_html (你的网站根目录在哪请自己修改)
就能访问了,需要注意的是,上面的代码里,discuz这个文件夹,是在你的discuz.ini 文件里面填写的,如果你想要生成别的文件夹,请修改ini文件以及上面的代码。


八、开机启动讯搜xunsearch

到这里就能全文搜索你的论坛帖子和回复了,那么我们日常需要做点什么呢?哪些可以作为计划任务自动运行,或者是开机运行呢?
这里说说两个重要的工具,一个叫crontab,一个叫systemctl,前面那个是计划任务,后面这个是开机运行,建议先了解下这两个东西的功能。

说起来这两个功能我也折腾了一会,后来也无所谓了,定期手动一下,也一点也不麻烦,我一般一个星期重新生成一次索引就够了。重要的是,开机启动一定要做好。我是这么做的
我做了一个文件xunsearch.service,可以直接使用,前提是你安装的目录没修改
xunsearch.rar (225 Bytes, 下载次数: 41)
解压后把这个xunsearch.service文件放在 /etc/systemd/system/目录下
然后执行
  1. systemctl enable xunsearch
复制代码


上面这条把它列入了开机自启动,附带赠送一下以下命令,基本上用不到了


  1. # 开机启动
  2. systemctl enable xunsearch

  3. # 关闭开机启动
  4. systemctl disable xunsearch

  5. # 启动服务
  6. systemctl start xunsearch

  7. # 停止服务
  8. systemctl stop xunsearch

  9. # 重启服务
  10. systemctl restart xunsearch

  11. # 查看服务状态
  12. systemctl status xunsearch
  13. systemctl is-active sshd.service

  14. # 结束服务进程(服务无法停止时)
  15. systemctl kill xunsearch
复制代码

到这里基本就大功告成了,如果想修改搜索界面,想美化美化的,可以修改discuz文件夹里的search.tpl文件,可以改改搜索结果的地址,还可以在论坛里把这个搜索框集成进去。

九、每天定时更新索引,更新搜索结果

每天早上可以定时索引,把前一天的新东西加到搜索结果里
putty里执行
  1. crontab -e
复制代码

然后按 i 进入编辑模式,在最后编写(注意修改密码和数据库名称)
  1. 25 06 * * * /www/wdlinux/phps/56/bin/php /usr/local/xunsearch/sdk/php/util/Indexer.php --rebuild --source=mysql://root:dbpassword@localhost/dbname --sql="SELECT * FROM pre_forum_post" --project=discuz
复制代码

解释一下上面的这句:
25 06 是指早上的6点25分执行
* * * 就别管了,照抄就是
后面的 /www/wdlinux/phps/56/bin/php 表示这是一个需要用php执行的脚本,这个是你的php的位置
后面的长长的就是执行索引的语句,在前面我们已经用过一次,请修改密码和数据库名称

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-3-29 21:07 , Processed in 0.047025 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表