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

家电维修 2023-07-16 19:17www.caominkang.com家电维修技术

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

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

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

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

  • 安装

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

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

get http://.xunsearch./donload/xunsearch-full-latest.tar.bz2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m36ito0m-1608782486644)(https://ojv5o1um.qnssl./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 i  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://ojv5o1um.qnssl./xunsearch002.png)]

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

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

  • bin/xs-ctl.sh -b local start // 监听在本地回环地址 127.0.0.1 上
  • bin/xs-ctl.sh -b i 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://ojv5o1um.qnssl./xunsearch003.png)]

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

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

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

http://.xunsearch./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
eight = 4

[cate]
index = both
eight = 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 --s-rebuild demo

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

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

Copyright © 2016-2025 www.jianfeikang.com 建飞家电维修 版权所有 Power by