分類: 系統運維php
爲何要寫這篇文章?css
答:經過常規的三大步(./configure,make,make install)的編譯安裝mmseg時,老是出現找不到src/Makefile.in文件的錯誤(config.status: error: cannot find input file: src/Makefile.in)。即使是依照官方教程所說的先安裝好依賴軟件(yum -y install glibc-common libtool autoconf automake mysql-devel expat-devel,若是是用編譯安裝的方法安裝的Mysql就不用裝mysql-devel,在編譯csf時指定Mysql的安裝目錄便可)也沒法解決問題。html
官方安裝說明:(原文)
============================================================
依賴環境安裝:
Debina等使用deb系統:
aptitude -y install yum glibc-common build-essential libtool autoconf automake libexpat-dev mysql-client (若是是用編譯安裝的方法安裝的Mysql就不用裝mysql-client ,在編譯csf時指定Mysql的安裝目錄便可)
Centos等使用yum系統:
yum -y install glibc-common libtool autoconf automake expat-devel mysql-devel (若是是用編譯安裝的方法安裝的Mysql就不用裝mysql-devel,在編譯csf時指定Mysql的安裝目錄便可)
BSD系統:
pkg_add -r libtool autoconf automake mysql5-client iconv
安裝升級autoconf
coreseek須要autoconf 2.64以上版本,所以須要升級autoconf,否則會報錯從http://download.chinaunix.net/download.php?id=29328&ResourceID=648下載autoconf-2.64.tar.bz2,安裝方法以下:python
必定要執行以上的拷貝,不然coreseek在make編譯時會出錯。
coreseek安裝:mysql
mkdir -p /usr/local/mmseg3/etclinux
cp <mmseg_soft_rootdir>/data/unigram.txt /usr/local/mmseg3/etc/sql
cd /usr/local/mmseg3/etcubuntu
../bin/mmseg -u unigram.txtvim
生成unigram.txt.uniapi
cp unigram.txt.uni uni.lib
【分詞庫配置說明】
vi 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
//
*********************************
cd /usr/local/coreseek/
bin/indexer --all [--config sphinx.conf] 用於建立全文索引
bin/search <搜索關鍵字> 一個簡單的命令行(CLI) 的測試程序,用於測試全文索引;
bin/searchd [--config sphinx.conf] 一個守護進程,其餘軟件能夠經過這個守護進程進行全文檢索;
附加:
1. 如需啓用python支持,請安裝或者升級至python2.6,configure之中,去掉--without-python,加上--with-python,而後從新編譯安裝
python data source演示:下載
2. 若是不能夠搜索中文,請首先檢查英文是否正常;如英文正常,則請檢查:
a. charset_dictpath = etc/dict/ #請確保uni.lib在此目錄下
charset_type = zh_cn.utf-8
b. charset_table的配置請註釋掉
c. 請確保從數據來源讀取的數據,爲utf-8字符集;
MySQL4.1起能夠經過SET NAMES設定輸出字符集,即便原始數據爲GBK;
MySQL4.1如下版本,請直接聯繫咱們解決GBK問題;
d. 請確保你測試檢索時,傳送到search或者searchd的字符串尾utf-8
e. 請查看search或者Query返回信息中,分詞信息是否正確
d. 詞典的設置和構建,具體請查看mmseg
f. 請前往 論壇 提出問題
3. 若是提示:iniparser: cannot open /usr/local/csft/mmseg.ini
請前往查看mmseg.ini具體設置方法
4. 若是提示no working pthreads library found,請參考。
===============================================================
5. coreseek啓動腳本
coreseek源碼包裏沒有啓動程序,只能手動經過命令來啓動,將下面的文件命名爲shinxed,保存在/etc/ini.d/裏,就能夠實現相應的系統自動啓過徎。
5. SphinxClient 安裝php擴展sphinx
或者能夠直接使用$root_path/coreseek-version/testpack/api/目錄中的提供的api接口文件
1.安裝