天天看點

coreseek,php,mysql全文檢索部署(一)

安裝環境:

Ubuntu 10.04.4      64位

mysql                    Ver 14.14 Distrib 5.1.69

php                        PHP 5.2.6 (cli)

coreseek安裝需要預裝的軟體:

apt-get install make gcc g++ automake libtool mysql-client libmysqlclient15-dev   libxml2-dev libexpat1-dev

coreseek安裝需要源碼包:

wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz

安裝完成後的目錄說明:

api:api接口和測試腳本

etc:配置檔案

etc/pysource:python資料源腳本

var:運作資料

var/data:索引檔案

var/log:搜尋日志

var/test:測試源資料

1.安裝mmseg   (支援中文分詞)

root@CC-57:~# tar zxvf coreseek-3.2.14.tar.gz

root@CC-57:~# cd coreseek-3.2.14/mmseg-3.2.14/

root@CC-57:~/coreseek-3.2.14/mmseg-3.2.14# ./bootstrap         #輸出的warning資訊可以忽略,如果出現error則需要解決

root@CC-57:~/coreseek-3.2.14/mmseg-3.2.14# ./configure --prefix=/usr/local/mmseg3

root@CC-57:~/coreseek-3.2.14/mmseg-3.2.14# make && make install

2.安裝coreseek   支援mysql資料源和xml資料源

root@CC-57:~/coreseek-3.2.14/mmseg-3.2.14# cd ../csft-3.2.14/

root@CC-57:~/coreseek-3.2.14/csft-3.2.14# sh buildconf.sh      #輸出的warning資訊可以忽略,如果出現error則需要解決

root@CC-57:~/coreseek-3.2.14/csft-3.2.14# ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql=/var/www/dream/mysql/

root@CC-57:~/coreseek-3.2.14/csft-3.2.14# make && make install

可能遇到的問題:

有的系統下可能出現:expected `;' before ‘CSphTokenizer_UTF8SpaceSeg’,

或者出現:configure: WARNING: unrecognized options: --with-mmseg, --with-mmseg-includes, --with-mmseg-libs

是因為你沒有進行随後的sh buildconf.sh操作

生成目前系統對應的編譯配置檔案

需要使用以下指令:$ sh buildconf.sh

Linux環境下,如遇到pthread問題,請先直接執行以下指令在進行configur:$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib$ export LD_LIBRARY_PATH

如果出現undefined reference to `libiconv'的類似錯誤,可以按照如下方法處理:

方法一:(Linux使用)## 直接執行:export LIBS="-liconv"

然後make clean,再次configure後,進行編譯安裝make && make install

方法二:

首先configure,然後vim src/makefile

在其中搜尋lexpat,在其後加上 -liconv

修改後該行應該為:-lexpat -liconv -L/usr/local/lib

然後再次make && make install## 方法三:

首先configure,然後vim config/config.h

在其中搜尋USE_LIBICONV,将其後的1修改為0

然後再次make && make install

3.測試mmseg分詞,coreseek搜尋(需要預先設定好字元集為zh_CN.UTF-8,確定正确顯示中文)

root@CC-57:~/coreseek-3.2.14/testpack# export LANG=zh_CN.UTF-8       #設定系統字元集

root@CC-57:~/coreseek-3.2.14/testpack# locale

LANG=zh_CN.UTF-8

LANGUAGE=en_US:en

LC_CTYPE="zh_CN.UTF-8"

LC_NUMERIC="zh_CN.UTF-8"

LC_TIME="zh_CN.UTF-8"

LC_COLLATE="zh_CN.UTF-8"

。。。。

root@CC-57:~/coreseek-3.2.14/csft-3.2.14# cd ../testpack/

root@CC-57:~/coreseek-3.2.14/testpack# cat var/test/test.xml           #此時應該正确顯示中文

root@CC-57:~/coreseek-3.2.14/testpack# /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc/ var/test/test.xml

root@CC-57:~/coreseek-3.2.14/testpack# /usr/local/coreseek/bin/indexer -c etc/csft.conf --all

報錯:

/usr/local/coreseek/bin/indexer: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory

解決辦法:

root@CC-57:~/coreseek-3.2.14/testpack# ln -s /var/www/dream/mysql/lib/mysql/libmysqlclient.so.15 /usr/lib/

繼續執行:

##以下為正常索引全部資料時的提示資訊:(csft-4.0版類似)

Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release (r2117)]

Copyright (c) 2007-2011,

Beijing Choice Software Technologies Inc (http://www.coreseek.com)

using config file 'etc/csft.conf'...

indexing index 'xml'...

collected 3 docs, 0.0 MB

sorted 0.0 Mhits, 100.0% done

total 3 docs, 7585 bytes

total 0.010 sec, 739134 bytes/sec, 292.34 docs/sec

total 2 reads, 0.000 sec, 4.2 kb/call avg, 0.0 msec/call avg

total 7 writes, 0.000 sec, 3.1 kb/call avg, 0.0 msec/call avg

root@CC-57:~/coreseek-3.2.14/testpack# /usr/local/coreseek/bin/indexer -c etc/csft.conf var/test/test.xml

##以下為正常索引指定資料時的提示資訊:(csft-4.0版類似)

WARNING: no such index 'var/test/test.xml', skipping.

total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg

total 0 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg

root@CC-57:~/coreseek-3.2.14/testpack# /usr/local/coreseek/bin/search -c etc/csft.conf

##以下為正常測試搜尋時的提示資訊:(csft-4.0版類似)

index 'xml': query '': returned 3 matches of 3 total in 0.004 sec

displaying matches:

1. document=1, weight=1, published=Thu Apr  1 22:20:07 2010, author_id=1

2. document=2, weight=1, published=Thu Apr  1 23:25:48 2010, author_id=1

3. document=3, weight=1, published=Thu Apr  1 12:01:00 2010, author_id=2

words:

root@CC-57:~/coreseek-3.2.14/testpack# /usr/local/coreseek/bin/search -c etc/csft.conf -a Twittter

##以下為正常測試搜尋關鍵詞時的提示資訊:(csft-4.0版類似)

index 'xml': query 'Twittter ': returned 1 matches of 1 total in 0.014 sec

1. document=2, weight=1, published=Thu Apr  1 23:25:48 2010, author_id=1

1. 'twittter': 1 documents, 3 hits

root@CC-57:~/coreseek-3.2.14/testpack# /usr/local/coreseek/bin/searchd -c etc/csft.conf

##以下為正常開啟搜尋服務時的提示資訊:(csft-4.0版類似)

listening on all interfaces, port=9312

root@CC-57:~/coreseek-3.2.14/testpack# netstat -nuptl | grep :9312

tcp        0      0 0.0.0.0:9312            0.0.0.0:*               LISTEN      21818/searchd

如要停止搜尋服務:

root@CC-57:~/coreseek-3.2.14/testpack# /usr/local/coreseek/bin/searchd -c etc/csft.conf --stop

stop: succesfully sent SIGTERM to pid 21818

4.通過以上步驟

coreseek已經安裝測試完成,可以提供正常的xml資料源索引以及提供對應的搜尋服務了

     本文轉自ljl_19880709 51CTO部落格,原文連結:http://blog.51cto.com/luojianlong/1345678,如需轉載請自行聯系原作者