華為云計算 云知識 什么是Sphinx
什么是Sphinx

簡介

Sphinx是一個基于SQL的全文檢索引擎,可以結(jié)合MySQL,PostgreSQL做全文搜索,它可以提供比 數(shù)據(jù)庫 本身更專業(yè)的搜索功能,使得應(yīng)用程序更容易實現(xiàn)專業(yè)化的全文檢索。Sphinx特別為一些腳本語言設(shè)計搜索API接口,如Java,PHP,Python,Perl,Ruby等,同時為MySQL也設(shè)計了一個存儲引擎插件。

編譯和測試方式

1.選擇操作環(huán)境

本文選用華為鯤鵬云服務(wù)ECS KC1實例做測試

2.獲取源代碼

本文檔所測試版本為:Sphnix-2.2.11,可通過“https://releases.ansible.com/ansible/ansible-2.0.0.0.tar.gz”下載。

3.配置編譯環(huán)境

1) 安裝依賴包。

yum install gcc-c++
yum install automake
yum install imake
yum install libl2-devel
yum install libxml2-devel
yum install expat-devel

2)確保環(huán)境中運行著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)創(chuàng)建“data”目錄。

mkdir /var/data

2)導(dǎo)入Sphnix的測試數(shù)據(jù)到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”文件,對應(yīng)信息修改成如下內(nèi)容:

sql_host= localhost   #服務(wù)器名
sql_user= root     #數(shù)據(jù)庫賬戶名
sql_pass= Huawei@123     #數(shù)據(jù)庫密碼
sql_db= test    #使用sphnix庫名
sql_port= 3306  #optional, default is 3306
注釋掉下面內(nèi)容
sql_query_pre          = SET NAMES utf8

4)創(chuàng)建測試索引文件。

cd /usr/local/bin
./indexer --all

5)啟動Sphnix搜索服務(wù)器。

./searchd

6)進(jìn)入Sphnix解壓后的文件夾中(假設(shè)為“/root/sphinx-2.2.11-release/”),并使用Sphnix安裝包自帶的API工具測試。

cd /root/sphinx-2.2.11-release/api
python test2.py

回顯結(jié)果如下:

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