迅搜(xunsearch)的安装使用以及操作类分享

搜索到这篇文章的人大多都应该已经知道 迅搜(xunsearch) 是什么。

迅搜(xunsearch)是采用 C/C++ 基于 xapian 和 scws 开发的全文搜索引擎解决方案,适用于php全文检索、mysql全文检索和各种站内搜索。

我原来做了一个小站,抓了很多很多文章,放到mysql中进行 like 搜索的效率是很低很低的,所以考虑了用迅搜,搜索引擎中只存了文章id、标题、tag、描述、文章分类、然后根据索引的文章id再到 mysql 读取文章内容。原来用了 RPC ,后来就没有那么多机器了 那直接来吧。

先听一首 Jeremy Lim 的 Into Ether (Original Mix) 压压惊呐!

  • 安装

我是在 CentOs 下进行安装的,其实迅搜的教程挺详细的。我只是简化了一下。吧?

1.运行下面指令下载、解压安装包。

wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m36ito0m-1608782486644)(https://ojv5ow1um.qnssl.com/xunsearch001.png)]

2.进入xunsearch-full-1.4.9目录,执行setup.sh文件

./setup.sh		//执行安装命令

默认安装目录:/usr/local/xunsearch

3.安装完成:

vim /etc/rc.d/rc.local     //添加开机启动
/usr/local/xunsearch/bin/xs-ctl.sh -b inet  restart 	//将此命令写入开机启动

搜索系统将所有数据保存在 /usr/local/xunsearch/data 目录中。如果您希望数据目录另行安排或转移至其它分区,请将 /usr/local/xunsearch/data 作为软链接指向真实目录。
软连接到:/data/xunsearch/data

ln -s /data/xunsearch/data	/usr/local/xunsearch/data

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4vLvn8ZI-1608782486647)(https://ojv5ow1um.qnssl.com/xunsearch002.png)]

Info: 出于性能和多数需求考虑 xunsearch 服务端和 SDK API 通讯时没有加密和验证处理, 并且默认情况 xs-ctl.sh 启动的服务程序是绑定并监听在 127.0.0.1 上。

如果您的 SDK 调用和 xunsearch 服务端不在同一服务器,请使用 -b inet 方式启动脚本, 并注意借助类似 iptables 的防火墙来控制 xunsearch 的 8383/8384 两个端口的访问权限。 启动脚本用法举例如下,以下均为合法使用方式:

  • bin/xs-ctl.sh -b local start // 监听在本地回环地址 127.0.0.1 上
  • bin/xs-ctl.sh -b inet start // 监听在所有本地 IP 地址上
  • bin/xs-ctl.sh -b a.b.c.d start // 监听在指定 IP 上
  • bin/xs-ctl.sh -b unix start // 分别监听在 tmp/indexd.sock 和 tmp/searchd.sock

4.启动讯搜服务:

/usr/local/xunsearch/bin/xs-ctl.sh start

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mt69bcX7-1608782486654)(https://ojv5ow1um.qnssl.com/xunsearch003.png)]

检测你的服务器是否符合讯搜的最低要求:(PHP执行)

php /usr/local/xunsearch/sdk/php/util/RequiredCheck.php

5.根据字段配置.ini文件

http://www.xunsearch.com/tools/iniconfig参考文档项目配置详解内容。

ini文件路径:/usr/local/xunsearch/sdk/php/app/article.ini

project.name = article
project.default_charset = utf-8

[id]
type = id

[title]
type = title

[desc]
type = body

[tags]
index = both
weight = 4

[cate]
index = both
weight = 3

6.索引管理工具——Indexer(用PHP去执行sdk)

  • *# 清空 demo 项目的索引数据 *
    util/Indexer.php --clean demo
  • # 导入 JSON 数据文件 file.json 到 demo 项目
    util/Indexer.php --source=json demo file.json
  • # 导入 MySQL 数据库的 dbname.tbl_post 表到 demo 项目中,并且平滑重建
    util/Indexer.php --rebuild --source=mysql://root:pass@localhost/dbname --sql=“SELECT * FROM tbl_post” --project=demo
  • # 查看 demo 项目在服务端的相关信息
    util/Indexer.php --info -p demo
  • # 强制刷新 demo 项目的搜索日志
    util/Indexer.php --flush-log --project demo
  • # 强制停止重建
    util/Indexer.php --stop-rebuild demo

根据mysql导入数据
#util/Indexer.php --rebuild --source=mysql://root:password@localhost/dbname --sql=“SELECT id,title,category,tags,description,cate_id,add_time FROM gzy_article” --project=article

操作类详见github: https://github.com/auto0010/xunsearch

你可能感兴趣的:(php,搜索引擎,php)