溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

高性能SQL全文檢索引擎Sphinx怎么用

發(fā)布時間:2021-12-07 10:05:44 來源:億速云 閱讀:176 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要為大家展示了“高性能SQL全文檢索引擎Sphinx怎么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“高性能SQL全文檢索引擎Sphinx怎么用”這篇文章吧。

Sphinx是一款基于SQL的高性能全文檢索引擎,Sphinx的性能在眾多全文檢索引擎中也是數(shù)一數(shù)二的,利用Sphinx,我們可以完成比數(shù)據(jù)庫本身更專業(yè)的搜索功能,而且可以有很多針對性的性能優(yōu)化。

Sphinx的特點

  • 快速創(chuàng)建索引:3分鐘左右即可創(chuàng)建近100萬條記錄的索引,并且采用了增量索引的方式,重建索引非常迅速。

  • 閃電般的檢索速度:盡管是1千萬條的大數(shù)據(jù)量,查詢數(shù)據(jù)的速度也在毫秒級以上,2-4G的文本量中平均查詢速度不到0.1秒。

  • 為很多腳本語言設(shè)計了檢索API,如PHP,Python,Perl,Ruby等,因此你可以在大部分編程應(yīng)用中很方便地調(diào)用Sphinx的相關(guān)接口。

  • MySQL設(shè)計了一個存儲引擎插件,因此如果你在MySQL上使用Sphinx,那簡直就方便到家了。

  • 支持分布式搜索,可以橫向擴(kuò)展系統(tǒng)性能。

PHP+MySQL+Sphinx 搜索引擎架構(gòu)圖

高性能SQL全文檢索引擎Sphinx怎么用

在MySQL中安裝Sphinx

Sphinx在MySQL上安裝有兩種方式:

  • ***種方式是采用API調(diào)用,我們可以使用PHP,Python,Perl,Ruby等編程語言的API函數(shù)進(jìn)行查詢,這種方式不必重新編譯MySQL,模塊間改動比較少,相對靈活。

  • 第二種需要重新編譯MySQL,將Sphinx以插件的方式編譯到MySQL中去,這種方式對程序改動比較少,僅僅需要改動SQL語句即可,但前提是你的MySQL版本必須在5.1以上。

下面是***種安裝方式:

#下載***穩(wěn)定版 wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz tar xzvf sphinx-0.9.9.tar.gz cd sphinx-0.9.9 ./configure --prefix=/usr/local/sphinx/   --with-mysql  --enable-id64 make make install

Sphinx中文分詞插件Coreseek安裝

注:coreseek的安裝教程來自這里,下面是詳細(xì)過程:

安裝升級autoconf

因為coreseek需要autoconf 2.64以上版本,因此需要升級autoconf,不然會報錯。從http://download.chinaunix.net/download.php?id=29328&ResourceID=648下載autoconf-2.64.tar.bz2,安裝方法如下:

tar -jxvf autoconf-2.64.tar.bz2 cd autoconf-2.64 ./configure make make install

下載coreseek

新版本的coreseek將詞典和sphinx源程序放在了一個包中,因此只需要下載coreseek包就可以了。

wget http://www.wapm.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz

安裝mmseg(coreseek所使用的詞典)

tar xzvf coreseek-3.2.14.tar.gz cd mmseg-3.2.14 ./bootstrap    #輸出的warning信息可以忽略,如果出現(xiàn)error則需要解決 ./configure --prefix=/usr/local/mmseg3 make && make install cd ..

安裝coreseek(sphinx)

cd csft-3.2.14 sh buildconf.sh    #輸出的warning信息可以忽略,如果出現(xiàn)error則需要解決 ./configure --prefix=/usr/local/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql make && make install cd ..

測試mmseg分詞和coreseek搜索

備注:需要預(yù)先設(shè)置好字符集為zh_CN.UTF-8,確保正確顯示中文,我的系統(tǒng)字符集為en_US.UTF-8也是可以的。

cd testpack cat var/test/test.xml  #此時應(yīng)該正確顯示中文 /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml /usr/local/coreseek/bin/indexer -c etc/csft.conf --all /usr/local/coreseek/bin/search -c etc/csft.conf 網(wǎng)絡(luò)搜索 此時正確的應(yīng)該返回 words: 1. '網(wǎng)絡(luò)': 1 documents, 1 hits 2. '搜索': 2 documents, 5 hits

生成 mmseg詞庫及配置文件

新版本的已經(jīng)自動生成。

以上是“高性能SQL全文檢索引擎Sphinx怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI