簡(jiǎn)介
Sphinx是一個(gè)基于SQL的全文檢索引擎,可以結(jié)合MySQL,PostgreSQL做全文搜索,它可以提供比 數(shù)據(jù)庫(kù) 本身更專業(yè)的搜索功能,使得應(yīng)用程序更容易實(shí)現(xiàn)專業(yè)化的全文檢索。Sphinx特別為一些腳本語言設(shè)計(jì)搜索API接口,如Java,PHP,Python,Perl,Ruby等,同時(shí)為MySQL也設(shè)計(jì)了一個(gè)存儲(chǔ)引擎插件。
編譯和測(cè)試方式
1.選擇操作環(huán)境
本文選用華為鯤鵬云服務(wù)ECS KC1實(shí)例做測(cè)試
2.獲取源代碼
本文檔所測(cè)試版本為: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 automakeyum install imakeyum install libl2-develyum install libxml2-develyum install expat-devel
2)確保環(huán)境中運(yùn)行著MySQL。
4. 編譯源代碼
本文以Sphnix-2.2.11為例,下載Sphnix-2.2.11源碼,并編譯安裝。
wget http://sphinxsearch.com/files/sphinx-2.2.11-release.tar.gztar -zxvf sphinx-2.2.11-release.tar.gzcd sphinx-2.2.11-release./configuremake -j4make install
5.測(cè)試已完成編譯的軟件
1)創(chuàng)建“data”目錄。
mkdir /var/data
2)導(dǎo)入Sphnix的測(cè)試數(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”文件,對(duì)應(yīng)信息修改成如下內(nèi)容:
sql_host= localhost #服務(wù)器名
sql_user= root #數(shù)據(jù)庫(kù)賬戶名
sql_pass= Huawei@123 #數(shù)據(jù)庫(kù)密碼
sql_db= test #使用sphnix庫(kù)名
sql_port= 3306 #optional, default is 3306
注釋掉下面內(nèi)容
sql_query_pre = SET NAMES utf8
4)創(chuàng)建測(cè)試索引文件。
cd /usr/local/bin./indexer --all
5)啟動(dòng)Sphnix搜索服務(wù)器。
./searchd
6)進(jìn)入Sphnix解壓后的文件夾中(假設(shè)為“/root/sphinx-2.2.11-release/”),并使用Sphnix安裝包自帶的API工具測(cè)試。
cd /root/sphinx-2.2.11-release/apipython 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