sphider 丁廷臣簡體中文完美漢化版帶蜘蛛搜索引擎程序 v1.3.4是最官方的新版,免費開源,用官方最新發布原版漢化。未更改任何內核文件。php
Sphider 是一個完美的帶有蜘蛛的搜索引擎程序。mysql
Sphider是一個輕量級,採用PHP開發的web spider和搜索引擎,使用mysql來存儲數據。能夠利用它來爲本身的網站添加搜索功能。Sphider很是小,易於安裝和修改,已經有數千網站在使用它。linux
官方主頁 http://www.sphider.eu/web
點擊下載sphider 丁廷臣簡體中文完美漢化版帶蜘蛛搜索引擎程序 v1.3.4sql
今日須要爲幾個網站作個全文搜索引擎,找了幾個PHP開源項目,先試了一下Sphinx ,惋惜是基於數據庫的,至關於數據庫搜索的擴展。Sphider還不錯,不過中文的分詞不行,基本只能靠空格和符號進行分詞。想用luence的話只能用Java和.net了,沒有php版的,所以只好嘗試本身修改Sphider的分詞了。還好找到了SCWS這個不錯的中文分詞系統,只須要把他的功能加入到Sphider裏面就能夠了。數據庫
先按照他們的安裝文檔部署好Sphider和SCWS,這裏使用的SCWS-1.1.6,須要部署好PHP擴展,注意Linux下要修改詞庫的權限,不然分詞會把全部漢字單獨分開。Sphider這裏使用的丁廷臣簡體中文完美漢化版帶蜘蛛搜索引擎。ide
二者部署無誤後,修改Sphider,找到admin文件夾下的spider文件,首先在開始加入代碼初始化分詞程序函數
注意這裏使用的gbk,若是你的網頁用的utf8編碼,要把這裏以及詞典和規則文件的位置更改一下優化
在index_url函數中,把原有的英文分詞替換掉,在$wordarray = unique_array(explode(" ", $data['content']));前面加上網站
$cws->send_text($data['content']); $list = $cws->get_tops(1000, $xattr); settype($list, 'array'); $wordarray=array(); $i=0; // segment foreach ($list as $tmp) { $wordarray[$i][1]=$tmp['word']; $wordarray[$i][2]=$tmp['times']; $i++; }
刪除
$wordarray = unique_array(explode(" ", $data['content']));
和
$wordarray = calc_weights ($wordarray, $title, $host, $path, $data['keywords']);
兩個語句,由於Sphider原有的英文分詞這裏就徹底不必用了,這裏能夠自行對$wordarray進行限制和優化,這裏我寫的很簡單。
修改完成後,爬蟲就能正常對中文進行分詞了,效果還不錯,注意若是出現亂碼注意網頁或者辭典編碼是utf8仍是gb2312。