简介
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比 数据库 本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如Java,PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。
编译和测试方式
1.选择操作环境
本文选用华为鲲鹏 云服务 ECS KC1实例做测试
2.获取源代码
本文档所测试版本为:Sphnix-2.2.11,可通过“https://releases.ansible.com/ansible/ansible-2.0.0.0.tar.gz”下载。
3.配置编译环境
1) 安装依赖包。
yum install gcc-c++
yum install automake
yum install imake
yum install libl2-devel
yum install libxml2-devel
yum install expat-devel
2)确保环境中运行着MySQL。
4. 编译源代码
本文以Sphnix-2.2.11为例,下载Sphnix-2.2.11源码,并编译安装。
wget http://sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz
tar -zxvf sphinx-2.2.11-release.tar.gz
cd sphinx-2.2.11-release
./configure
make -j4
make install
5.测试已完成编译的软件
1)创建“data”目录。
mkdir /var/data
2)导入Sphnix的测试数据到MySQL中。
mysql -uroot -p test < /usr/local/etc/example.sql
3)备份配置文件。
cp /usr/local/etc/sphinx.conf.dist /usr/local/etc/sphinx.conf
修改“sphinx.conf”文件,对应信息修改成如下内容:
sql_host= localhost #服务器名
sql_user= root #数据库账户名
sql_pass= Huawei@123 #数据库密码
sql_db= test #使用sphnix库名
sql_port= 3306 #optional, default is 3306
注释掉下面内容
sql_query_pre = SET NAMES utf8
4)创建测试索引文件。
cd /usr/local/bin
./indexer --all
5)启动Sphnix搜索服务器。
./searchd
6)进入Sphnix解压后的文件夹中(假设为“/root/sphinx-2.2.11-release/”),并使用Sphnix安装包自带的API工具测试。
cd /root/sphinx-2.2.11-release/api
python test2.py
回显结果如下:
n=1, res=this is my <b>text</b> <b>test</b> to be highlighted
n=2, res=this is another <b>test</b> <b>text</b> to be highlighted