1、
32位版本:php
coreseek安裝須要預裝的軟件:
apt-get install make gcc g++ automake libtool mysql-client libmysqlclient15-dev libxml2-dev libexpat1-dev
2、
CoreSeek快速安裝:
安裝前,建議查看:源碼包說明README;4.0/4.1版可參考3.2版本安裝,步驟相同;如遇到問題,請看詳細安裝說明。
##下載coreseek:coreseek 3.2.14:點擊下載、coreseek 4.0.1:點擊下載、coreseek 4.1:點擊下載
$ wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
$ 或者 http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.0.1-beta.tar.gz
$ 或者 http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz
$ tar xzvf coreseek-3.2.14.tar.gz 或者 coreseek-4.0.1-beta.tar.gz 或者 coreseek-4.1-beta.tar.gz
$ cd coreseek-3.2.14 或者 coreseek-4.0.1-beta 或者 coreseek-4.1-beta
##前提:需提早安裝操做系統基礎開發庫及mysql依賴庫以支持mysql數據源和xml數據源
##安裝mmseg
$ cd mmseg-3.2.14
$ ./bootstrap #輸出的warning信息能夠忽略,若是出現error則須要解決
$ ./configure --prefix=/usr/local/mmseg3
$ make && make install
$ cd ..
##安裝coreseek
$ cd csft-3.2.14 或者 cd csft-4.0.1 或者 cd csft-4.1
$ sh buildconf.sh #輸出的warning信息能夠忽略,若是出現error則須要解決
$ ./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 ##若是提示mysql問題,能夠查看MySQL數據源安裝說明
checking for CFLAGS needed for pthreads... -pthread
checking for LIBS needed for pthreads... -lpthread
checking for pthreads... found
checking whether to compile with MySQL support... yes
checking for mysql_config... not found
checking MySQL include files... configure: error: missing include files.
******************************************************************************
ERROR: cannot find MySQL include files.
Check that you do have MySQL include files installed.
The package name is typically 'mysql-devel'.
If include files are installed on your system, but you are still getting
this message, you should do one of the following:
1) either specify includes location explicitly, using --with-mysql-includes;
2) or specify MySQL installation root location explicitly, using --with-mysql;
3) or make sure that the path to 'mysql_config' program is listed in
your PATH environment variable.
To disable MySQL support, use --without-mysql option.
******************************************************************************
apt-get install libmysqlclient15-dev
$ make && make install
$ cd ..
##測試mmseg分詞,coreseek搜索(須要預先設置好字符集爲zh_CN.UTF-8,確保正確顯示中文)
$ cd testpack
$ cat var/test/test.xml #此時應該正確顯示中文
$ /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml
$ /usr/local/coreseek/bin/indexer -c etc/csft.conf --all
$ /usr/local/coreseek/bin/search -c etc/csft.conf 網絡搜索
安裝測試完成。
查看版本信息
$ /usr/local/coreseek/bin/indexer -c etc/csft.conf --all
##如要中止搜索服務,請使用
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf --stop
若是出現下面的錯誤:
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 '/usr/local/coreseek/etc/mysql_csft.conf'...
FATAL: failed to parse config file '/usr/local/coreseek/etc/mysql_csft.conf'
解決辦法:
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf --pidfile
啓動服務:
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft_mysql.conf --console
##如要已啓動服務,要更新索引,請使用
/usr/local/coreseek/bin/indexer -c etc/csft.conf --all --rotate
生成索引
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft_mysql.conf --all
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 '/usr/local/coreseek/etc/csft_mysql.conf'...
indexing index 'mysql'...
collected 3 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 3 docs, 7545 bytes
total 0.018 sec, 416069 bytes/sec, 165.43 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
搜索
/usr/local/coreseek/bin/search -c /usr/local/coreseek/etc/csft_mysql.conf 百度收購
結合php使用:
require ( "sphinxapi.php" );
$sph = new SphinxClient ();
$sph -> SetServer ('10.2.6.101', 9312 );
$sph -> setMatchMode(SPH_MATCH_ANY);
//$sph -> SetArrayResult ( true );
$sph -> SetLimits(0, 15, 1000);
$sph -> SetMaxQueryTime(10);
$index = 'index_main1';
$dbname = 'test';
$table = 'documents';
$result = $sph->Query ($wd, $index);
if($result == false)
{
echo '<pre>';
var_dump ($sph->GetLastError());exit();
}
if(isset($result['total_found']) && $result['total_found']>0)
{
$matches = $result['matches'];
$keys = array_keys($matches);
include 'MiniMysql.php';
$db = new MiniMysql(array('host'=>'localhost','user'=>'root','pwd'=>'root','dbname'=>$dbname,'prefix'=>'mj_'));
$list = $db -> getArray('SELECT id,title,content FROM `'.$table.'` WHERE id IN ('.implode(',',$keys).')');
$html = array();
$keys = array_flip($keys);
$opts = array(
'before_match' => '<font style=\'font-weight:bold;color:red\'>',
'after_match' => '</font>',
'limit' => 150,
);
foreach ($list as $key => $val )
{
$tmp = $sph->buildExcerpts($val,'index_main1',$wd,$opts);
$html[$keys[$val['id']]] =
'<div>'.
'<a href="" title="" target="">'.$tmp['1'].'</a>'.
'<p class="brief">'.$tmp['2'].'</p>'.
'</div>';
//$html[] = $html[$keys[$val['id']]] = '<div><a href="" title="" target="">'.$val['title'].'</a></div>';
}
ksort($html);
echo implode('',$html);
}
else
{
echo '';
exit();
}