华为云计算 云知识 什么是Sphinx
什么是Sphinx

简介

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
上一篇:Elasticsearch 下一篇:查询弹性云服务器磁盘信息ListServerBlockDevices