簡介
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