如何在CentOS 7上安装Sphinx搜索引擎
Zuoxiaojuan
・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官方网站上提供了更多信息。