12下一页
返回列表 发帖
查看: 9976|回复: 13

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

1

主题

3

回帖

31

积分

初学乍练

贡献
1 点
金币
22 个
发表于 2019-10-16 11:06:45 | 显示全部楼层 |阅读模式


见笑了,我是个php小白,略微能看懂一点点代码,但是修改能力是一点都没有不行。一直觉得discuz自带的搜索功能太鸡肋,而百度又对我的论坛不怎么友好,一年前就知道有讯搜xunsearch,也知道有Sphinx,但尝试了一下,都没能成功,这次咬牙用了xunsearch,终于折腾成功了,现在每天都在正常使用。
使用环境:centos7.6 64位 + WDCP
演示网址:http://www.baopoku.com/

独立演示网址:http://www.baopoku.com/discuz/search.php

一、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,因为安装讯搜时有些代码是中文,方便大家阅读,然后还用到flashfxp传点文件

三、论坛编码和备份数据
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的版本号apache_php-5.6.30或者是位置。这步比较重要,不弄会报错。


到这个时候,就算是部署完毕 了,接下来要琢磨把discuz整合进去,首先说明下,我就整合了一个表,  帖子内容,用户名,发帖日期,版块名称,基本上也够了,如果你们需要整合其他的表,比如门户、日志什么的,请自行研究。

六、导入论坛帖子,进行索引生成搜索数据
这时候准备一个discuz.ini文件,你可以直接下载我的,不用修改啥,解压缩后上传到 /usr/local/xunsearch/sdk/php/app/ 文件夹,那里面还有个demo.ini,不用管它,我们要弄的是这个新的discuz.ini
discuz.rar (255 Bytes, 下载次数: 412)


有了这个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/baopoku_com/public_html
复制代码
解释一下,这段代码相当于生成了一个网站,访问页面什么的都有了,需要修改的部分是后面的网站位置,我建议把它放在你的论坛的根目录下,这段话会让你的网站根目录下,自动生成一个discuz文件夹,比如我的网站在 /www/web/baopoku_com/public_html你的网站根目录在哪请自己修改)这个文件夹里在浏览器里输入

  1. http://www.baopoku.com/discuz/search.php
复制代码
就能访问了,需要注意的是,上面的代码里,discuz这个文件夹,是在你的discuz.ini 文件里面填写的,如果你想要生成别的文件夹,请修改ini文件以及上面的代码。注意后台索引数据很要时间的,不要着急,第二天再看吧。


八、开机启动讯搜xunsearch

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

说起来这两个功能我也折腾了一会,后来也无所谓了,定期手动一下,也一点也不麻烦,我一般一个星期重新生成一次索引就够了。重要的是,开机启动一定要做好。我是这么做的
我做了一个文件xunsearch.service,可以直接使用,前提是你安装的目录没修改
xunsearch.rar (225 Bytes, 下载次数: 382)
解压后把这个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的位置,需要确认你正在运行的php是不是这个位置,否则无法定时更新索引
后面的长长的就是执行索引的语句,在前面我们已经用过一次,请修改密码和数据库名称  dbpassword   和  dbname

然后按ESC进入“正常模式”,然后输入“:”,进入“命令模式”。此时屏幕的下方会出现一个冒号,你可以输入以下命令,并按“ENTER”执行:
:wq,保存并退出


评分

参与人数 2贡献 +1 金币 +15 人气 +5 收起 理由
dashen + 1 + 10 很给力!
罗永浩 + 5 + 5 论坛需要这种质量帖

查看全部评分

回复

使用道具 举报

2

主题

4

回帖

25

积分

初学乍练

贡献
0 点
金币
18 个
发表于 2019-10-20 23:28:12 | 显示全部楼层
可以给个演示地址吗?看看使用效果
回复 支持 反对

使用道具 举报

0

主题

1

回帖

1

积分

初学乍练

贡献
0 点
金币
0 个
发表于 2019-11-1 00:33:41 | 显示全部楼层
终于有人出迅搜教程  感谢
回复 支持 反对

使用道具 举报

1

主题

3

回帖

31

积分

初学乍练

贡献
1 点
金币
22 个
 楼主| 发表于 2019-11-26 21:42:37 | 显示全部楼层
Donny 发表于 2019-10-20 23:28
可以给个演示地址吗?看看使用效果
  1.     http://www.minbaoku.com/discuz/search.php
复制代码
回复 支持 反对

使用道具 举报

1

主题

3

回帖

31

积分

初学乍练

贡献
1 点
金币
22 个
 楼主| 发表于 2019-11-26 21:42:58 | 显示全部楼层
dokevike 发表于 2019-11-1 00:33
终于有人出迅搜教程  感谢

不客气,我也是新手上路,折腾出来了,比较激动
回复 支持 反对

使用道具 举报

5

主题

555

回帖

797

积分

应用开发者

贡献
7 点
金币
146 个
QQ
发表于 2019-11-27 14:08:22 | 显示全部楼层
谢谢分享
回复

使用道具 举报

134

主题

325

回帖

565

积分

自成一派

贡献
0 点
金币
73 个
发表于 2019-11-27 19:24:50 | 显示全部楼层
比较想了解论坛编辑的转换,从GBK转为UTF8
回复 支持 反对

使用道具 举报

0

主题

48

回帖

53

积分

渐入佳境

贡献
0 点
金币
5 个
发表于 2020-1-9 14:58:08 | 显示全部楼层
很详细的讲解
回复 支持 反对

使用道具 举报

24

主题

68

回帖

121

积分

渐入佳境

贡献
0 点
金币
25 个
发表于 2021-4-1 10:29:16 | 显示全部楼层
按照你的步骤弄好了,索引也创建完成了, 网站也生成了,搜索时候任何结果都没有,不知道原因出在哪
回复 支持 反对

使用道具 举报

7

主题

1463

回帖

2527

积分

应用开发者

贡献
171 点
金币
123 个
QQ
发表于 2021-8-12 20:04:44 | 显示全部楼层
sdfarmer 发表于 2021-4-1 10:29
按照你的步骤弄好了,索引也创建完成了, 网站也生成了,搜索时候任何结果都没有,不知道原因出在哪 ...

我也操作了,数据库不到4G 索引11G;
也是搜不出数据;教程有坑,我是宝塔环境
专业解决各类服务器问题 和 discuz疑难杂症!
QQ 860855665 西部数码核心代理www.wensuhulian.com 飘仙建站论坛bbs.piaoxian.net
discuz互助QQ群 73131419
回复 支持 反对

使用道具 举报

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

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2024-4-25 01:31 , Processed in 0.089021 second(s), 22 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2024 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表