coreseek 是在Sphinx 基礎上開發的全文檢索軟件, 具 體介紹詳見文尾 附 錄
=========================================================
一、 安裝環境及介紹
1. 前提環境
系 統環境:centos5
操 作用戶:root
文 中粗體字為需用戶輸入的命令內容
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. 安裝環境準備
安 裝g++ 編譯環境
yum install g++
yum install gcc
yum install make
安 裝python 開發組件
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 用到的一些執行文件 包括 indexer 索引建立 search 查詢工具 searchd 查詢服務器 等
etc 中是配置文 件,該目錄中 有一個sphinx.conf. disk ,這個相當于sphinx 的 配置例子文件,我們以這個文件為藍本,重新創建一個空白內容的sphinx.conf ,存放在 etc 下 。
6. 創建dict 目錄
創建字典目錄:
mkdir /var/eyou/coreseek/dict/
產生字典步驟:
cd /root/soft/ mmseg.3.0b3/data
/var/eyou/mmseg/bin/mmseg -u unigram.txt
產生了unigram.txt.uni , 移到相應目錄。
cp unigram.txt.uni /var/eyou/coreseek/dict/uni.lib
創建 / var / eyou /coreseek/dict/mmseg.ini
內容:
[mmseg]
merge_number_and_ascii=1;
number_and_ascii_joint=-;
compress_space=0;
seperate_number_ascii=1;
#merge_number_and_ascii: 字母和數字連續出現是非切分
#number_and_ascii_joint: 連接數字和字母可用的符號,如'-' '.' 等
#compress_space :暫時無效
#seperate_number_ascii :是否拆分數字,如 1988 -> 1/x 9/x 8/x 8/x
7. php 調用 sphinx api
通過官方API 調用Sphinx ,具體為:
在 coreseek 安裝目錄有一個API 目錄,里面有三個PHP 文 件:test.php ,test2.php 和sphinxapi.php 。 sphinxapi.php 是sphinx 調用接口封裝文件(這個文件就是官方提供的php 調 用API ),test.php 是一個在命令行下執行的查詢例子文件,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. 全文搜索與數據庫搜索的區別
o 專為全文搜索優化,效率更高
由于典型的數據庫系統要考慮用戶的“增刪改查”等多種復雜操作,因此其存取數據的方式需要考察綜合考慮各種應用;而全文搜索的數據存取方式 只考慮快速讀取,相比數據庫的查詢,要快10 倍或更多。(即使啟用了數據庫內置的全文搜索功能,這個結論仍成立)。
o 支持復雜的查詢表達式
數據庫系統的查詢,往往只支持“AND ” 或 "OR" 等有限的模式,而全文檢 索不但支持"AND" 、“OR ” 查詢,還支持“NOT ”、“近似”、 “整句”等多種查詢方式;同時相比數據庫系統,進行在一定范圍內查詢時也更高效
o 支持按相關度排序
數據庫查詢出的結果,往往按照數據庫內置的排序規則進行排序,往往只能按時間、按點擊等有效的排序規則進行;全文搜索除了能夠支持數據庫的 排序規則外,還支持按照結果的相關度排序,這往往會給訪問者帶來更大的便利。
o 支持中文分詞
數據庫提供的全文搜索功能往往不支持中文分詞(或僅提供二元切分),導致某些短語檢索不到或出現大量不相干的數據;中文全文檢索系統支持中 文分詞,進一步過濾了不相干的數據。
2. 自建全文搜索與使用Google 等第三方網站提供的站內全文搜索的區別
o 對網站設備有要求
自建全文搜索往往需要站長有至少一臺獨立主機,而使用第三方提供的全文搜索對站點的要求低,虛擬主機即可;不過,出現全文搜索需求的站點通 常已經有自己的獨立主機了。
o 索引更新更及時
由于搜索服務在第三方托管,其往往只能按照一定的規則定期更新索引庫(往往是幾小時、甚至幾天才更新一次索引),您網站上的新出現的內容往 往不能及時被搜索到;
使用自建全文搜索,可以保證您網站上新出現的內容可以”立即“被檢索到。
o 更適應您的網站
由于中文需要進行分詞的特性,導致沒有一套通用的詞庫可以適用于全部網站,要得到優秀的檢索結果需要定制一套適用于您網站的詞庫;
采用第三方的搜索服務,您是無法修改第三方廠商的詞庫的,而使用自建全文搜索則無此問題。
o 更有利于您網站的數據整合
有些網站不止是論壇,往往還包括內容管理(CMS) 、商城等多種應用,而使用數據庫搜索往往需要用戶在各個系統 中都進行搜索才能找到內容;
第三方的檢索無法區別各個系統的不同。而自建的全文搜索可以有效的區分各個數據來源的不同數據,真正做到一次搜索應有盡有,從而改善您網站 的訪問體驗,增加您網站的點擊率。
o 避免您的訪問者遇到某些尷尬
第三方的搜索結果頁面不是您可以控制修改的,有推薦一些可能會使您網站訪問者尷尬的搜索短語的可能。而使用自建全文搜索則完全無此問題。