coreseek 是在Sphinx 基礎(chǔ)上開發(fā)的全文檢索軟件, 具 體介紹詳見文尾 附 錄

=========================================================

一、       安裝環(huán)境及介紹

1.      前提環(huán)境

系 統(tǒng)環(huán)境:centos5

操 作用戶:root

文 中粗體字為需用戶輸入的命令內(nèi)容

 

2.       源碼包準備

下 載MMSEG 分詞源碼包 

wget  http://www.coreseek.cn/uploads/sources/mmseg3_0b3.tar.gz

下 載coreseek 源碼包 

wget  http://www.coreseek.cn/uploads/sources/csft3_0b4.tar.gz

解 壓縮源碼包

tar -xzvf mmseg3_0b3.tar.gz

tar -xzvf csft3_0b4.tar.gz

 

 

3.      安裝環(huán)境準備

安 裝g++ 編譯環(huán)境

yum install g++

yum install gcc

yum install make

 

安 裝python 開發(fā)組件

yum install python

yum install python-dev

 

 

 

安 裝make

yum install make

 

4.      編譯mmseg

cd mmseg.3.0b3/

./configure --prefix=/ var / eyou /mmseg

make

make install

 

5.      編譯coreseek

cd csft3_0b4/

./configure --prefix=/ var / eyou /coreseek --with-python --with-mysql --with-mmseg-includes=/ var / eyou /mmseg/include/mmseg --with-mmseg-libs=/ var / eyou /mmseg/lib/

make & make install

 

 

此步安裝完成后, 將在/ var / eyou / 下生成 coreseek 目錄

coreseek 目錄中有三個目錄分別為bin 、 etc 、var

bin 中 存有sphinx 用到的一些執(zhí)行文件 包括 indexer 索引建立 search 查詢工具 searchd 查詢服務器 等

etc 中是配置文 件,該目錄中 有一個sphinx.conf. disk ,這個相當于sphinx 的 配置例子文件,我們以這個文件為藍本,重新創(chuàng)建一個空白內(nèi)容的sphinx.conf ,存放在 etc

 

 

6.      創(chuàng)建dict 目錄

創(chuàng)建字典目錄:

mkdir /var/eyou/coreseek/dict/

產(chǎn)生字典步驟:

cd /root/soft/ mmseg.3.0b3/data

/var/eyou/mmseg/bin/mmseg -u unigram.txt

產(chǎn)生了unigram.txt.uni , 移到相應目錄。

cp unigram.txt.uni /var/eyou/coreseek/dict/uni.lib

創(chuàng)建 / var / eyou /coreseek/dict/mmseg.ini

內(nèi)容:

[mmseg]

merge_number_and_ascii=1;

number_and_ascii_joint=-;

compress_space=0;

seperate_number_ascii=1;

#merge_number_and_ascii: 字母和數(shù)字連續(xù)出現(xiàn)是非切分

#number_and_ascii_joint: 連接數(shù)字和字母可用的符號,如'-' '.' 等

#compress_space :暫時無效

#seperate_number_ascii :是否拆分數(shù)字,如 1988 -> 1/x 9/x 8/x 8/x

 

7.       php 調(diào)用 sphinx api

 

  通過官方API 調(diào)用Sphinx ,具體為:

coreseek 安裝目錄有一個API 目錄,里面有三個PHP 文 件:test.php ,test2.php 和sphinxapi.php 。 sphinxapi.php 是sphinx 調(diào)用接口封裝文件(這個文件就是官方提供的php 調(diào) 用API ),test.php 是一個在命令行下執(zhí)行的查詢例子文件,test2.php 是 一個生成摘要的 例子文件。

 

8.       配置 sphinx.conf

     具體參見sphinx.conf 的 注釋說明

9.       啟動服務

 

建 立索引

/var/eyou/coreseek/bin/indexer  --config  /var/eyou/coreseek/etc/sphinx.conf

啟 動 searchd 服務

/var/eyou/coreseek/bin/searchd --config /var/eyou/coreseek/etc/sphinx.conf

 

 

 

二、       附錄 :全文檢索----coreseek

 

 

1.    全文搜索與數(shù)據(jù)庫搜索的區(qū)別

o          專為全文搜索優(yōu)化,效率更高
由于典型的數(shù)據(jù)庫系統(tǒng)要考慮用戶的“增刪改查”等多種復雜操作,因此其存取數(shù)據(jù)的方式需要考察綜合考慮各種應用;而全文搜索的數(shù)據(jù)存取方式 只考慮快速讀取,相比數(shù)據(jù)庫的查詢,要快10 倍或更多。(即使啟用了數(shù)據(jù)庫內(nèi)置的全文搜索功能,這個結(jié)論仍成立)。

o          支持復雜的查詢表達式
數(shù)據(jù)庫系統(tǒng)的查詢,往往只支持“AND ” 或 "OR" 等有限的模式,而全文檢 索不但支持"AND" 、“OR ” 查詢,還支持“NOT ”、“近似”、 “整句”等多種查詢方式;同時相比數(shù)據(jù)庫系統(tǒng),進行在一定范圍內(nèi)查詢時也更高效

o          支持按相關(guān)度排序
數(shù)據(jù)庫查詢出的結(jié)果,往往按照數(shù)據(jù)庫內(nèi)置的排序規(guī)則進行排序,往往只能按時間、按點擊等有效的排序規(guī)則進行;全文搜索除了能夠支持數(shù)據(jù)庫的 排序規(guī)則外,還支持按照結(jié)果的相關(guān)度排序,這往往會給訪問者帶來更大的便利。

o          支持中文分詞
數(shù)據(jù)庫提供的全文搜索功能往往不支持中文分詞(或僅提供二元切分),導致某些短語檢索不到或出現(xiàn)大量不相干的數(shù)據(jù);中文全文檢索系統(tǒng)支持中 文分詞,進一步過濾了不相干的數(shù)據(jù)。

2.    自建全文搜索與使用Google 等第三方網(wǎng)站提供的站內(nèi)全文搜索的區(qū)別

o          對網(wǎng)站設(shè)備有要求
自建全文搜索往往需要站長有至少一臺獨立主機,而使用第三方提供的全文搜索對站點的要求低,虛擬主機即可;不過,出現(xiàn)全文搜索需求的站點通 常已經(jīng)有自己的獨立主機了。

o          索引更新更及時
由于搜索服務在第三方托管,其往往只能按照一定的規(guī)則定期更新索引庫(往往是幾小時、甚至幾天才更新一次索引),您網(wǎng)站上的新出現(xiàn)的內(nèi)容往 往不能及時被搜索到;
使用自建全文搜索,可以保證您網(wǎng)站上新出現(xiàn)的內(nèi)容可以”立即“被檢索到。

o          更適應您的網(wǎng)站
由于中文需要進行分詞的特性,導致沒有一套通用的詞庫可以適用于全部網(wǎng)站,要得到優(yōu)秀的檢索結(jié)果需要定制一套適用于您網(wǎng)站的詞庫;
采用第三方的搜索服務,您是無法修改第三方廠商的詞庫的,而使用自建全文搜索則無此問題。

o          更有利于您網(wǎng)站的數(shù)據(jù)整合
有些網(wǎng)站不止是論壇,往往還包括內(nèi)容管理(CMS) 、商城等多種應用,而使用數(shù)據(jù)庫搜索往往需要用戶在各個系統(tǒng) 中都進行搜索才能找到內(nèi)容;
第三方的檢索無法區(qū)別各個系統(tǒng)的不同。而自建的全文搜索可以有效的區(qū)分各個數(shù)據(jù)來源的不同數(shù)據(jù),真正做到一次搜索應有盡有,從而改善您網(wǎng)站 的訪問體驗,增加您網(wǎng)站的點擊率。

o          避免您的訪問者遇到某些尷尬
第三方的搜索結(jié)果頁面不是您可以控制修改的,有推薦一些可能會使您網(wǎng)站訪問者尷尬的搜索短語的可能。而使用自建全文搜索則完全無此問題。