由于工作需求,需在站點(diǎn)中添加一個(gè)檢索的功能,檢索的條件有三個(gè)且權(quán)重為 ?標(biāo)題 > 標(biāo)簽 > 內(nèi)容。在技術(shù)選型的過(guò)程中考慮了Lucenne、Sphinx、XunSearch三種索搜引擎,加上業(yè)務(wù)的需求,數(shù)據(jù)量大致在一萬(wàn)左右,而且是用PHP開發(fā),所以最終選擇了XunSearch,XunSearch對(duì)中文的支持也是非常棒的,也提供了全面的API文檔,開發(fā)起來(lái)非??臁ucenne、Sphinx對(duì)大數(shù)據(jù)量支持的比較好,性能很高。Lucenne需要java環(huán)境的支持而我這里是PHP的環(huán)境,所以排除了。再來(lái)看看我們的Sphinx:
Sphinx支持高速建立索引(可達(dá)10MB/秒,而Lucene建立索引的速度是1.8MB/秒)
高性能搜索(在2-4 GB的文本上搜索,平均0.1秒內(nèi)獲得結(jié)果)
高擴(kuò)展性(實(shí)測(cè)最高可對(duì)100GB的文本建立索引,單一索引可包含1億條記錄)
支持分布式檢索
支持基于短語(yǔ)和基于統(tǒng)計(jì)的復(fù)合結(jié)果排序機(jī)制
支持任意數(shù)量的文件字段(數(shù)值屬性或全文檢索屬性)
支持不同的搜索模式(“完全匹配”,“短語(yǔ)匹配”和“任一匹配”)
支持作為Mysql的存儲(chǔ)引擎
等等。。。
在網(wǎng)上找了很多安裝教程,安裝的狠蛋疼,最終在博客上找到了一個(gè)比較好的,原文點(diǎn)這里,我在它上面改了一點(diǎn)東西,擴(kuò)展性變得也比較好,關(guān)于Coreseek的說(shuō)明網(wǎng)上一大推,這里就不再說(shuō)了,個(gè)人理解Coreseek = Sphinx + 中文分詞。廢話不多說(shuō),進(jìn)入正題
1、先安裝環(huán)境:
yum install make gcc gcc++gcc-c++libtool autoconf automake imake mysql-devellibxml2-develexpat-devel
注: 檢測(cè)以上軟件是否安裝,如果沒(méi)有請(qǐng)確保安裝;否則無(wú)法正常安裝Coreseek-3.2.14
2、開始安裝:
在coreseek的官網(wǎng)下載coreseek-3.2.14.tar.gz,傳到自己的服務(wù)器/usr/local/下,反正我在使用命令wgethttp://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz沒(méi)有下載成功,
注意:原文mmseg是安裝在/usr/local/mmseg3下,我是安裝在/usr/local/mmseg,所以導(dǎo)致我在后面創(chuàng)建索引的時(shí)候報(bào)錯(cuò),如圖

后來(lái)摸索著在路徑/usr/local/coreseek-3.2.14/testpack/etc在這個(gè)路徑下,將代碼
charset_dictpath = /usr/local/mmseg3/etc/改成charset_dictpath = /usr/local/mmseg/etc/就可以。。。
進(jìn)入/usr/local/下
tar -zxvf coreseek-3.2.14.tar.gz
cd coreseek-3.2.14
##############安裝 mmseg #################
cd mmseg-3.2.14
./bootstrap ? #輸出的warning信息可以忽略,如果出現(xiàn)error則需要解決,一般不會(huì)出現(xiàn)錯(cuò)誤
./configure --prefix=/usr/local/mmseg ? ?#指定 mmseg 的安裝目錄
make && make install
#############安裝 csft-3.2.14 ###############
cd /usr/local/coreseek-3.2.14/csft-3.2.14
#這里我們要修改 src/sphinxexpr.cpp 文件,將該文件中的 1013、1047、1080 行的 ExprEval 改為 this->ExprEval(這里的行數(shù)跟網(wǎng)上的教程說(shuō)的行數(shù)不一樣,可能是版本的問(wèn)題吧,但是如果你用的是我提供的版本,該行數(shù)是正確的),懂點(diǎn) C++ 的同學(xué)也可以自己看看 ExprEval 錯(cuò)在哪里。哈哈我不懂C++都看懂了。。。
#改完上面所說(shuō)的問(wèn)題后:
sh buildconf.sh
./configure --prefix=/usr/local/coreseek ?--without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/--with-mmseg-libs=/usr/local/mmseg/lib/--with-mysql
make && make install
在安裝的過(guò)程中,只要不提示錯(cuò)誤 error,那么其他的如 warning 信息都是可以忽略的。
至此我們已經(jīng)成功的將中文檢索引擎安裝到我們服務(wù)器上來(lái)了。
3、測(cè)試
進(jìn)入目錄/usr/local/coreseek-3.2.14/testpack
cat var/test/test.xml#此時(shí)應(yīng)該正確顯示中文

/usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml#整篇文章進(jìn)行分詞

/usr/local/coreseek/bin/indexer -c etc/csft.conf--all ?#創(chuàng)建索引

/usr/local/coreseek/bin/search -c etc/csft.conf 網(wǎng)絡(luò)搜索#搜索關(guān)鍵字 網(wǎng)絡(luò)搜索

/usr/local/coreseek/bin/searchd -c etc/csft.conf ? ? ? ? ? ? ? ? ? ? ? #正常開啟搜索服務(wù)
/usr/local/coreseek/bin/searchd -c etc/csft.conf--stop ? ? ? ? ? ? #如要停止搜索服務(wù)
/usr/local/coreseek/bin/indexer -c etc/csft.conf--all --rotate ? ? #如要已啟動(dòng)服務(wù),要更新索引
到此安裝和測(cè)試都完成了。。。具體的在后面慢慢研究