CentOS6.x安裝Coreseek和Sphinx擴(kuò)展for PHP

coreseek 簡(jiǎn)介

coreseek是一款基于sphinx開源的全文搜索引擎,與sphinx不同的是coreseek增加了一個(gè)帶有中文分詞的詞庫。

下載coreseek安裝包

本篇使用coreseek3.2.14穩(wěn)定版進(jìn)行講解,最新版本是4.1,但是只有測(cè)試版??梢試L試去官方地址http://www.coreseek.cn/下載安裝包,不過貌似官方下載地址已經(jīng)崩潰,如果下載不成功的話可以去網(wǎng)上查找其它下載渠道,我的是在新浪微盤上下載的,附上地址http://vdisk.weibo.com/s/z-JIj1kq4Z81。

開始安裝

在安裝coreseek之前確保在系統(tǒng)安裝了LNMP/LAMP環(huán)境。
安裝依賴軟件

yum install gcc make gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel

將下載好的安裝包上傳到Linux,執(zhí)行解壓命令,解壓完成后進(jìn)入目錄

tar xzvf coreseek-3.2.14.tar.gz
cd coreseek-3.2.14

將會(huì)看到3個(gè)目錄分別是csft-3.2.14、mmseg-3.2.14、testpack,其中csft實(shí)際就是sphinx安裝包,mmseg為中文分詞安裝包,testpack是安裝完coreseek后測(cè)試用的。首先安裝中文分詞

cd mmseg-3.2.14
./configure --prefix=/usr/local/mmseg/

如果出現(xiàn)如下錯(cuò)誤
config.status: error: cannot find input file: src/Makefile.in
請(qǐng)執(zhí)行

aclocal
libtoolize --force
automake --add-missing
autoconf
autoheader
make clean

執(zhí)行編譯并安裝mmseg

make && make install

到這里mmseg安裝完畢,可以測(cè)試下中文分詞

echo '我們是中國人'>1.txt
/usr/local/mmseg/bin/mmseg -d /usr/local/mmseg/etc 1.txt

接下來安裝coreseek

cd ../csft-3.2.14
sh buildconf.sh #生成configure可執(zhí)行文件,如果當(dāng)前目錄已存在configure文件會(huì)發(fā)出警告:已存在其它版本autoconf,但不能保證能正常工作,如果出現(xiàn)任何問題,建議重新生成
./configure --prefix=/usr/local/coreseek \
--without-unixodbc \
--with-mmseg=/usr/local/mmseg \
--with-mmseg-includes=/usr/local/mmseg/include/mmseg/ \
--with-mmseg-libs=/usr/local/mmseg/lib/ \
--with-mysql
make && make install

到此coreseek就全部安裝完成了,測(cè)試一下coreseek

cd ../testpack #進(jìn)入安裝包提供的測(cè)試目錄
/usr/local/coreseek/bin/indexer -c etc/csft.conf --all  #創(chuàng)建索引
/usr/local/coreseek/bin/search -c etc/csft.conf '我們是中國人'
Paste_Image.png

創(chuàng)建索引時(shí)可能會(huì)出現(xiàn)以下錯(cuò)誤
1./usr/local/coreseek/bin/indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

#解決辦法
echo '/usr/local/mysql/lib'>>/etc/ld.so.conf
ldconfig

2.Unigram dictionary load Error Segmentation fault

#解決辦法(補(bǔ)充說明:這個(gè)是由于字典的路徑不對(duì),如果前面設(shè)置的字典所在目錄名稱就是mmseg3就不會(huì)出現(xiàn)這個(gè)問題了,坑...)
sed 's/mmse3/mmseg/' etc/csft.conf

安裝sphinx擴(kuò)展for php

#sphinx擴(kuò)展依賴于libsphinxclient,先安裝libsphinxclient
cd api/libsphinxclient
./configure
make && make install
#下載并安裝sphinx擴(kuò)展
wget http://pecl.php.net/get/sphinx-1.3.2.tgz
tar zxvf sphinx-1.3.2.tgz
cd sphinx-1.3.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

安裝libsphinxclient時(shí)如果報(bào)如下錯(cuò)誤
sphinxclient.c:1216: error: static declaration of 'sock_close' follows non-static declaration sphinxclient.c:280: note: previous declaration of 'sock_close' was here
請(qǐng)執(zhí)行

sed -ie '280s/^/static /' sphinxclient.c

接下來修改php.ini文件
增加下面這行到合適的位置,例如extension_dir配置行下面
extension=sphinx.so
執(zhí)行下面的命令,可以看到sphinx擴(kuò)展模塊已添加到php里了

/usr/local/php/bin/php -m #查看php擴(kuò)展模塊列表

不過此時(shí)還不能在php中使用sphinx,需要重啟php-fpm,我這里采用php-fpm.pid文件控制php-fpm進(jìn)程
執(zhí)行重啟php-fpm命令

kill -USR2 `/usr/local/php/var/run/php-fpm.pid`

重啟成功后打印phpinfo()


Paste_Image.png

OK!整個(gè)安裝過程就到此結(jié)束了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.Coreseek介紹: Sphinx默認(rèn)不支持中文索引及檢索,基于Sphinx開發(fā)了Coreseek全文檢索服...
    杍劼閱讀 1,471評(píng)論 0 0
  • Welcome 目前網(wǎng)絡(luò)上充斥著大量的陳舊信息,讓PHP新手誤入歧途,傳播著錯(cuò)誤的實(shí)踐和糟糕的代碼,這必須得到糾正...
    layjoy閱讀 21,843評(píng)論 7 118
  • 啊 公司要開始新項(xiàng)目 移動(dòng)的app 名字叫安好 運(yùn)維太坑爹了 給了個(gè)破配置 Xeon(TM) CPU 3.40...
    xiasix閱讀 1,639評(píng)論 0 2
  • 每一個(gè)人都是生下來還債的。 不存在的永遠(yuǎn), 趨勢(shì)之所有人去學(xué)習(xí),生活。 沒人說世上沒有愛, 可愛與孽債, 又有誰能...
    宮門曦嬈閱讀 388評(píng)論 0 0
  • 民國是中國武術(shù)最后一個(gè)黃金時(shí)代,一時(shí)英雄輩出風(fēng)云際會(huì)。 宮寶森是一位接受了新的思想的武術(shù)家,主張武術(shù)南北融合,...
    小代琳最乖啦閱讀 476評(píng)論 2 3

友情鏈接更多精彩內(nèi)容