利用 Xunsearch 搭建搜索引擎、内容搜索实战
Xunsearch 是开源免费、高性能、多功能,简单易用的专业全文检索技术方案,是目前非常知名的开源搜索引擎。
安装完Xunserach,还需要安装PHP SDK,才能进行搜索。
-----
本人已在腾讯云实验室建立了实验,可以直接上机操作。当然,你也可以用自己的服务器进行测试。
实验室地址 https://cloud.tencent.com/developer/labs/lab/10424
-----
软件环境: Centos 7
1,安装 GCC 依赖
任务时间:10min ~ 20min
部分用户在安装时,后面的步骤会出错,是因为安装依赖时没注意到GCC,GCC++,很多教程只给出了一种依赖的安装,结果导致后面出现错误。这里笔者建议,把GCC和GCC++都安装。
安装 GCC 依赖
输入以下命令安装 gcc
yum -y install gcc
安装 GCC++ 依赖
输入以下命令安装 gcc++ (可能耗时很久)
yum -y install gcc-c++
安装 zlib 模块
输入以下命令进行安装,可能需要等待很久
yum -y install zlib-devel
2,安装 xunsearch
任务时间:1min ~ 2min
下载、解压安装包
运行以下指令,下载安装包
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
运行以下指令,解压安装包
tar -xjf xunsearch-full-latest.tar.bz2
执行安装
使用以下命令查看目录内容
ls
找到 xunsearch-full 开头的目录 ,复制目录名称。样例:xunsearch-full-1.4.11 。
进行安装
打开解压包目录(版本不一样,目录名称不一样,以本机解压名称为准)
cd xunsearch-full-1.4.11
执行安装
sh setup.sh
输入安装目录
- 如无意外,终端将出现安装目录提示。(这一步耗时较多,请耐心等候)
- 请输入
/user/local/xunsearch
- 这里要求目录为 /user/local/xunsearch
- 默认目录可能为 [/usr/local/xunsearch]
- 注意是这里要求为
user而不是usr - 设置名称不是强制,是为了方便
- 稍等片刻输入
y再次确认。
如无错误,将出现以下内容

进行配置、启动
打开目录
cd /user/local/xunsearch
记下你的ip <您的 CVM IP 地址> 后面会用到。
启动xunsearch的方法有四种,现在按我的方法进行启动,其它方法在后面补全。
复制以下命令到终端上运行。
bin/xs-ctl.sh -b local start // 监听在本地回环地址 127.0.0.1 上
出现以下内容表示成功

其它启动 xunsearch 的方式(替换成你的ip) -- 这里可以不管
bin/xs-ctl.sh -b local start // 监听在本地回环地址 127.0.0.1 上
bin/xs-ctl.sh -b inet start // 监听在所有本地 IP 地址上
bin/xs-ctl.sh -b <您的 CVM IP 地址> start // 监听在服务器 IP 上
bin/xs-ctl.sh -b unix start // 分别监听在 tmp/indexd.sock tmp/searchd.sock
3,安装环境、配置、运行 php sdk
任务时间:10min ~ 20min
xunsearch 已经安装完毕,但是还需要安装环境,然后在 mysql 中新建一个表。 这一步比较麻烦。 所以我们利用控制面板完成。
安装控制面板
耗时较长,可能需要 10-20 分钟。
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
等待一段时间后,会出现控制面板地址和账号密码
样例如下 Bt-Panel: http://<您的 CVM IP 地址>:8888
username: qbqdkra5
password: eeedd1e8
记下你的账号密码
然后执行以下命令
service bt restart
:8888>
然后就可以访问控制面板
安装环境和配置数据库
打开
:8888> 在登陆窗口输入账号密码进行登陆。
在弹出的窗口中,选择 一键安装
(安装环境耗时较长,可能需要 10-20 分钟)

4,导入数据和搜索数据
任务时间:10min ~ 20min
打开目录
打开 php 目录
cd /user/local/xunsearch/sdk/php
显示数据
执行以下命令
util/Indexer.php --source=csv --clean demo
命令表示 清除旧数据然后导入新数据
导入数据
复制以下内容,在终端窗口粘贴,然后按下 回车键 ,在按 Ctrl + D 就会结束输入
1,关于 xunsearch 的 DEMO 项目测试,项目测试是一个很有意思的行为!,1314336158
2,测试第二篇,这里是第二篇文章的内容,1314336160
3,项目测试第三篇,俗话说,无三不成礼,所以就有了第三篇,1314336168
4,李白:床前明月光,疑是地上霜,举头望明月,低头思故乡,13016542681
5,李白:君不见黄河之水天上来,奔流到海不复回,16816477956
测试搜索
恭喜你!已经搭建好搜索引擎了!
现在让我们进行搜索吧!!!
复制以下命令进行搜索
util//Quest.php demo 项目 //关键词为 项目
看看搜索结果,是不是很震撼~
现在让我们再试试别的关键词吧
util//Quest.php demo 李白 //关键词为 李白
只需在上面的显示数据这一步重复,就可以反复测试搜索了。
注意:要在关键词后面加上 一个空格 !才能正常搜索! 如
util//Quest.php demo 三 //三的后面加了空格!
这里不是绝对,貌似时偶发情况,有时不加空格是不行的
利用 Xunsearch 搭建搜索引擎、内容搜索实战的更多相关文章
- Redis 实战 —— 10. 实现内容搜索、定向广告和职位搜索
使用 Redis 进行搜索 P153 通过改变程序搜索数据的方式,并使用 Redis 来减少绝大部分基于单词或者关键字进行的内容搜索操作的执行时间. P154 基本搜索原理 P154 倒排索引 (in ...
- 利用SOLR搭建企业搜索平台 之——MultiCore
Solr Multicore 是 solr 1.3 的新特性.其目是一个solr实例,可以有多个搜索应用. 下面着手来将solr给出的一个example跑出来.这篇文章是基于<利用SOLR搭建企 ...
- 利用Lucene.net搜索引擎进行多条件搜索的做法
利用Lucene.net搜索引擎进行多条件搜索的做法 2018年01月09日 ⁄ 搜索技术 ⁄ 共 613字 ⁄ 字号 小 中 大 ⁄ 评论关闭 利用Lucene.net搜索引擎进行多条件搜索的做法 ...
- Kafka1 利用虚拟机搭建自己的Kafka集群
前言: 上周末自己学习了一下Kafka,参考网上的文章,学习过程中还是比较顺利的,遇到的一些问题最终也都解决了,现在将学习的过程记录与此,供以后自己查阅,如果能帮助到其他人,自然是更好的. ...
- ZooKeeper1 利用虚拟机搭建自己的ZooKeeper集群
前言: 前段时间自己参考网上的文章,梳理了一下基于分布式环境部署的业务系统在解决数据一致性问题上的方案,其中有一个方案是使用ZooKeeper,加之在大数据处理中,ZooKeeper确实起 ...
- Hadoop4 利用VMware搭建自己的hadoop集群
前言: 前段时间自己学习如何部署伪分布式模式的hadoop环境,之前由于工作比较忙,学习的进度停滞了一段时间,所以今天抽出时间把最近学习的成果和大家分享一下. 本文要介绍的是如 ...
- 如何利用Power BI 制作动态搜索界面
最近Power BI有了最新更新,想着利用 Power BI 工具制造一个动态的搜索界面,比如动态切换搜索引擎,分别从百度.360.搜狗等搜索苹果最新新闻.通过一番测试,最终实现了相关功能. 数据加载 ...
- 利用Hexo搭建个人博客-博客发布篇
通过 <利用Hexo搭建个人博客-环境搭建篇> 以及 <利用Hexo搭建个人博客-博客初始化篇>,我们了解到了利用Hexo搭建个人博客需要的环境以及配置,下面这篇文章将会介绍如 ...
- 利用Hexo搭建个人博客-博客初始化篇
上一篇博文 <利用Hexo搭建个人博客-环境搭建篇> 中,我们讲解了利用Hexo搭建个人博客应该要配置哪些环境.相信大家已经迫不及待的想要知道接下来应该要怎么把自己的博客搭起来了,下面,让 ...
随机推荐
- 关于chrome下的bug
最近看了大神的一篇文章,于是尝试了一下里面说的bug以及修复 1.Chrome下absolute绝对定位元素部分display属性值不渲染bug 首先还原一下bug.. ff下的下效果 点击按钮后的效 ...
- 以安全模式启动firefox
碰到firefox打开后一直没有响应,解决方法: 以安全模式打开
- idp sp sso---SAML Single Sign-On (SSO) Service for Google Apps
src: https://developers.google.com/google-apps/sso/saml_reference_implementation Security Assertion ...
- 《Think Python》第16章学习笔记
目录 <Think Python>第16章学习笔记 16.1 Time 16.2 纯函数(Pure functions) 16.3 修改器(Modifiers) 16.4 原型 vs. 方 ...
- Python——爬虫学习1
爬虫了解一下 网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. Python的安装 本篇教程采用Python3 来写,所以你需要给你的电脑装上Python ...
- 泛型委托Action与ActionT
以前都是自己写委托,其实系统内部给我们系统了委托的. Action ——委托的非泛型版本就是一个无参数无返回值的委托. Action<T>——委托的泛型版本是一个无返回值,但是参数个数及类 ...
- Java中多个集合的交集,并集和差集
一.交集 java中交集使用 A.retainAll(B) ,交集的结果在集合A中. import org.junit.Test; import java.util.HashSet; import j ...
- Java 运行时数据区域
1. 整体分类 程序计数器 虚拟机栈 本地方法栈 Java 堆 方法区 运行时常量池 直接内存 2. 程序计数器 每个线程一个计数器,线程的私有内存 指向的是字节码的内存地址? 如果线程执行的是 Ja ...
- HTML是什么与基础格式
html 又称 超文本标记语言. 网页的本质其实就是html代码,通过浏览器,将html转换翻译成用户可以看得懂的展现丰富的页面. 所以制作网站的本质,其实就是编写html代码. HTML基础格式 & ...
- UOJ#316. 【NOI2017】泳池
传送门 一道 \(DP\) 好题 设 \(q\) 为一个块合法的概率 套路一恰好为 \(k\) 的概率不好算,算小于等于 \(k\) 的减去小于等于 \(k-1\) 的 那么设 \(f_i\) 表示宽 ...