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          避免您的訪問者遇到某些尷尬
第三方的搜索結果頁面不是您可以控制修改的,有推薦一些可能會使您網站訪問者尷尬的搜索短語的可能。而使用自建全文搜索則完全無此問題。