讯搜 配置mysql
实例讲解帝国cms整合xunsearch(迅搜)教程
来源51酷酷
编辑广告联盟评测网
时间2017-11-28 16:50:18
帝国CMS安装迅搜_linux系统下 安装迅搜记录
目的由于帝国的搜索实在是太弱了,所以想找个效率高的搜索。其实很早就知道迅搜这个开源程序,因为我做的一个插件就是用迅搜的分词系统做的。
先按官方的操作,把程序安装到服务器上。我的部署是这样的
1运行下面指令下载、解压安装包
cd /home
get [url]http://.xunsearch./donload/xunsearch-full-latest.tar.bz2[/url]
tar -xjf xunsearch-full-latest.tar.bz2
注在运行1这个步骤前,先打开你想下载的目标文件夹,比如我是下载在home这个文件夹里面的。如果你是第一次安装,可以 按我给的步骤来操作。
2我在安装的时候碰到问题是,Xshell下中文乱码,所以在做第2步之前,得先把编码换成UTF8,这样才能显示中文。
执行安装脚本,根据提示进行操作,主要是输入 xunsearch 软件包的安装目录,强烈建议单独规划一个目录,而不是混到别的软件目录中。
cd xunsearch-full-1.4.8
sh setup.sh
+==========================================+
| Wele to setup xunsearch(full) |
| 欢迎使用 xunsearch (完整版) 安装程序 |
+------------------------------------------+
| Follo the on-screen instructions please |
| 请按照屏幕上的提示操作以完成安装 |
+==========================================+
Please specify the installation directory
请指定安装目录 (默认为中括号内的值)
注安装过程中,会提示安装的路径,这样很像在电脑上安装软件。我安装的路径是 " /usr/local/xunsearch",我把文件夹里面的data软连接在"/mnt/xunsearch/x/data",这样便于管理,打开"/usr/local/xunsearch/data"其实就是打开"/mnt/xunsearch/x/data",文件会存放在"/mnt/xunsearch/x/data",这里需要注意设定好权限,不然会有问题产生。
软链接文件夹的建立(建立软链接的时候先删除/usr/local/xunsearch/data)
mkdir -p /mnt/xunsearch/x/data
ln -s /mnt/xunsearch/x/data /usr/local/xunsearch/data
安装成功后有信息
+=================================================+
| Installation pleted suessfully, Thanks you |
| 安装成功,感谢选择和使用 xunsearch |
+-------------------------------------------------+
| 说明和注意事项 |
| 1. 开启/重新开启 xunsearch 服务程序,命令如下 |
| /usr/local/xunsearch/bin/xs-ctl.sh restart
| 强烈建议将此命令写入服务器开机脚本中 |
| |
| 2. 所有的索引数据将被保存在下面这个目录中 |
| /usr/local/xunsearch/data
| 如需要转移到其它目录,请使用软链接。 |
| |
| 3. 您现在就可以在我们提供的开发包(SDK)基础上 |
| 开发您自己的搜索了。 |
| 目前只支持 PHP 语言,参见下面文档 |
| /usr/local/xunsearch/sdk/php/README
+=================================================+
其中开机自动启动可以找这个脚本"/etc/rc.local ",然后加入 /usr/local/xunsearch/bin/xs-ctl.sh restart 就行。
3待命令运行结束后,如果没有出错中断,则表示顺利安装完成,然后就可以启动/重新启动 xunsearch 的后台服务,下面命令中的 $prefix 请务必替换为您的安装目录,而不是照抄。我安装的路径是 " /usr/local/xunsearch"
cd $prefix
bin/xs-ctl.sh restart
显示
INFO: sping server[xs-indexd] (BIND:127.0.0.1:8383) .... [OK]
INFO: re-starting server[xs-indexd] ... (BIND:127.0.0.1:8383)
INFO: sping server[xs-searchd] (BIND:127.0.0.1:8384) .... [OK]
INFO: re-starting server[xs-searchd] ... (BIND:127.0.0.1:8384)
程序正常启动,就说明可以使用了。可以看官方的文档说明,这里只是把我安装的遇到的问题写出来,详细的一些东西可以看官方的。
注以下安装的路径"$prefix/sdk/php/util/",先在此声明,下面很多安装都在这个路径下,所以请注意。
没有仔细看的小盆友,可能会有疑惑。
到这里很多人像我一样不知道下一步要干啥。
这也是我想写这篇文章的原因,告诉你我也碰到了这个问题,我是这样做的。
4配置项目.INI,以下是我的配置参数,可供参考,有不明白的地方可以看官方文档。
每一个?xunsearch?搜索项目都一个独立的 INI 配置文件。DEMO 项目的配置文件 位于$prefix/sdk/php/app/demo.ini?使用以下指令便可直接查看配置文件内容。
cat $prefix/sdk/php/app/demo.ini
project.name = ecms
project.default_charset = GBK
;服务端用默认值
server.index = 8383
server.search = 8384
[id]
type = id
[classid]
index = self
tokenizer = full
[title]
type = title
[smalltext]
type = body
[nestime]
type = numeric
注修改完,记得把文件名改为项目的名称,比如ecms.ini
5# 导入 MySQL 数据库的 dbname.tbl_post 表到 demo 项目中,并且平滑重建
util/Indexer.php --rebuild --source=mysql://root:pass@localhost/dbname --sql="SELECt FROM tbl_post" --project=demo
注这里的前提是你已经把帝国装在服务器上了"mysql://root:pass@localhost/dbname",这个句段必须得知道root的密码,帝国使用的数据库名称,比如"empirecms",而"tbl_post"得换成帝国数据库里面的其中一个表,比如"phome_ecms_nes"
如果项目是ecms,那把项目demo换成ecms。
我的操作;
[root@AY140508152849948e05Z php]# util/Indexer.php --rebuild --source=mysql://root:你的密码@localhost/帝国数据库 --sql="SELECt FROM 表" --project=ecmsd
开始重建索引 ...
初始化数据源 ... mysql://root:xiaolong539827@localhost/duzim_empirecms
开始批量导入数据 (请直接输入数据) ...
开始批量导入数据 (请直接输入数据) ...
报告累计已处理数据 10000 条 ...
报告累计已处理数据 20000 条 ...
报告累计已处理数据 30000 条 ...
报告累计已处理数据 40000 条 ...
报告累计已处理数据 50000 条 ...
报告累计已处理数据 60000 条 ...
报告累计已处理数据 70000 条 ...
报告累计已处理数据 80000 条 ...
报告累计已处理数据 90000 条 ...
报告累计已处理数据 100000 条 ...
报告累计已处理数据 110000 条 ...
报告累计已处理数据 120000 条 ...
报告累计已处理数据 130000 条 ...
报告累计已处理数据 140000 条 ...
报告累计已处理数据 150000 条 ...
报告累计已处理数据 160000 条 ...
报告累计已处理数据 170000 条 ...
报告累计已处理数据 180000 条 ...
完成索引导入成功 37813 条,失败 0 条
完成重建索引 ...
6使用官方的搜索模板,自动生成
官方提供三种方式生成
# 在当前目录下生成 demo 项目的搜索代码
util/SearchSkel.php demo
[root@AY140508152849948e05Z php]# util/SearchSkel.php ecmsd
初始化项目对象 ...
解析字段,生成变量清单 ...
检测并创建输出目录 ...
正在生成 search.php ...
正在生成 suggest.php ...
正在复制 css ...
正在复制 img ...
正在生成 search.tpl ...
完成,请将 `./ecmsd` 目录转移到 eb 可达目录,然后访问 search.php 即可。
# 在指定的 /path/to/eb 目录生成 demo 搜索代码,代码目录为/path/to/eb/demo
util/SearchSkel.php demo /path/to/eb
# 使用选项指定方式
util/SearchSkel.php -p demo -o /path/to/eb
我的操作
util/SearchSkel.php -p ecms -o /mnt/htdocs/public_html/s/ecms
"/mnt/htdocs/public_html/s/ecms"这是自己网站里的一个文件夹,方便用FTP修改。
这三个步骤操作完成,基本就可以使用了。
如果出现问题,把问题复制然后百度,我是这样解决的,这样可以解决大部分的问题,其他就得自己动手了。关键在于动手。
怎么使用
比如网站是.xxx.
那么可以打开.xxx./s/ecms/search.php 搜索任意关键词就行
通过自动动手以后,知道原来迅搜不是在搜索mysql数据库的内容,而是把mysql某个库的某个表先导入自己的库里面,然后在自己的数据库里搜索,前面我们已经把自己的数据库导入迅搜指定的存放地点。
我的配置里面,有id,classid,title,smalltext,nestime,所以导入的数据会跟这些字段匹配。
,我们也可以导入副表里面的nestext,做多表查询,具体实施方法,有空再跟大家探讨。
一些问题的解答
我是使用util/Indexer.php --source=mysql://aaa:aaa@192.168.0.2/bbs_test --sql="select from cdb_posts" --project=discuz
这个命令进行导入的,不知道能否有一个从断点继续的方法?
RE: 索引到一大半的时候出错退出,有没有方法继续?
Indexer.php 你可以在 sql 语句中指定 offset 和 limit
--sql="select from cdb_posts limit 999999999999 offset 5000000" 类似这样,OFFSET 不能单用必须配合 limit
空调维修
- 海信电视维修站 海信电视维修站点
- 格兰仕空调售后电话 格兰仕空调维修售后服务电
- 家电售后服务 家电售后服务流程
- 华扬太阳能维修 华扬太阳能维修收费标准表
- 三菱电机空调维修 三菱电机空调维修费用高吗
- 美的燃气灶维修 美的燃气灶维修收费标准明细
- 科龙空调售后服务 科龙空调售后服务网点
- 华帝热水器维修 华帝热水器维修常见故障
- 康泉热水器维修 康泉热水器维修故障
- 华凌冰箱维修电话 华凌冰箱维修点电话
- 海尔维修站 海尔维修站点地址在哪里
- 北京海信空调维修 北京海信空调售后服务
- 科龙空调维修 科龙空调维修故障
- 皇明太阳能售后 皇明太阳能售后维修点
- 海信冰箱售后服务 海信冰箱售后服务热线电话
- 海尔热水器服务热线