如何在CentOS 7上安装Sphinx搜索引擎

・5 分钟阅读

Sphinx是一个自由开源的全文搜索引擎,可以集成到各种web应用程序中,提供快速,高质量的搜索结果。

本文会向你展示,如何设置一个Sphinx搜索引擎来索引,搜索Centos7服务器实例上的MariaDB数据库,它将给你一些关于如何在你的项目中使用Sphinx的初步想法。

前提条件

  • 从控制面板部署一个新的CentOS 7服务器实例,
  • 使用非根sudo用户从你的SSH终端登录,请参见如何创建sudo用户本文

步骤1:更新系统


sudo yum update -y && sudo reboot

系统重新启动后,请使用相同的sudo用户再次登录。

步骤2安装和配置Mariadb

Sphinx可用于搜索各种数据源,如SQL数据库,纯文本文件,HTML文件等等,下面,让我们看看如何使用Sphinx在MariaDB数据库上执行搜索。

使用YUM安装MariaDB :


sudo yum install mariadb mariadb-server

启动MariaDB服务:


sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

为了安全起见,请执行安全的MySQL安装:


sudo /usr/bin/mysql_secure_installation

按照以下说明完成此过程:


Enter current password for root (enter for none): Press Enter
Set root password? [Y/n]: Input Y, then press Enter
New password: Input a new password for root, press Enter
Re-enter new password: Input the same password again, then press Enter
Remove anonymous users? [Y/n]: Input Y, then press Enter
Disallow root login remotely? [Y/n]: Input Y, then press Enter
Remove test database and access to it? [Y/n]: Input Y, then press Enter
Reload privilege tables now? [Y/n]: Input Y, then press Enter

安全MySQL安装完成后,你必须为MySQL用户"root"设置一个新的密码,在本教程中,我将把它称为"yourpassword"

步骤3安装最新的Sphinx

要安装最新版本的owl,你需要从owl官方网站下载正确的rpm包:


cd ~
wget http://sphinxsearch.com/files/sphinx-2.2.10-1.rhel7.x86_64.rpm
sudo yum install sphinx-2.2.10-1.rhel7.x86_64.rpm

步骤4:创建用于测试的数据库

使用下面的MySQL命令创建一个名为"测试"的数据库:


mysql -u root -p -e"CREATE DATABASE test"

当要求提供密码时,输入前面设置的密码,然后按Enter键。

现在,从Sphinx例子sql文件导入测试数据:


mysql -u root -p test < /usr/share/doc/sphinx-2.2.10/example.sql

再次输入相同的密码,然后按Enter键完成导入。

第5步配置Sphinx

打开Sphinx配置文件/etc/sphinx/sphinx.conf


sudo vi /etc/sphinx/sphinx.conf

现在,你只需要设置MySQL用户名sql_user和密码sql_pass,这将是:


sql_user = root
sql_pass = yourpassword

保存和退出:

 
:wq

 

步骤6:启动索引器和搜索的守护进程

indexer和searchd都是Sphinx的重要组成部分,Indexer负责从数据源收集数据,而searchd是搜索引擎的一部分,它实际上处理搜索。

一定要有序地运行以下命令,否则会遇到错误。


sudo indexer --all
sudo searchd

要定期更新索引状态,请创建一个cron作业:

 
sudo crontab -e

 

输入以下条目:


0 * * * * /usr/bin/indexer --rotate --config /etc/sphinx/sphinx.conf --all

保存和退出:

 
:wq

 

此cron作业将在每小时更新索引状态。

第七步:测试你的斯芬克斯搜索引擎

你可以使用预定义的python脚本来测试Sphinx的设置:


python /usr/share/sphinx/api/test.py this is my test document

此命令会在例子MySQL数据库中搜索"这是我的测试文档",然后向你显示搜索结果。

教程就是这样,Sphinx还包括一个搜索API,可以从你自己的PHP,perl,python,ruby或Java项目中使用,Sphinx官方网站上提供了更多信息。

Zuoxiaojuan profile image