linux 下实现 sphinx全文检索、分词详细步骤(包括生成增量索引)全干货
M('search')->add(array('title'=>$search_title,'add_time'=>date('Y-m-d H:i:s')));
if(is_numeric($search_title))
{
$search_title=(int)$search_title;
}
$arr_title=preg_split('/(?
if(!empty($arr_title)) {
foreach($arr_title as $k=>$v) {
if(empty($v) or $v==' ') unset($arr_title[$k]); }
} $search_title=str_replace(' ','|',$search_title);
$search_title=$search_title.'|'.join('|',$arr_title);
include(ROOT.'common/sphinxapi.php');
$cl = new SphinxClient();
$cl->SetServer('127.0.0.1', 9312); //注意这里的主机
$cl->SetMatchMode(SPH_MATCH_ANY);
$cl->SetArrayResult(true); // $cl->SetSortMode("SPH_SORT_ATTR_DESC", 'id');
$cl->SetSortMode('SPH_SORT_RELEVANCE','title');
$cl->SetLimits(0, 5000, 10000);
$res = $cl->Query($search_title,'*');
$err = $cl->GetLastError();
3.解压tar zxvf sphinx-2.3.2-beta.tar.gz4.安装./configure --prefix=/www/server/sphinx --with-mysql=/www/server/mysql第一个是你要安装sphinx在什么地方,第二个中MySQL的路径,你按实际配置修改安装一定到解压后的目录下安装2335.编译 make make install如果出错 sphinx编译安装出错:undefined reference to libiconv make[2]: *** [sphinx.o] Error 1make[2]: Leaving directory `/www/sphinx-2.3.2-beta/src'make[1]: *** [all] Error 2make[1]: Leaving directory `/www/sphinx-2.3.2-beta/src'make: *** [all-recursive] Error 1解决办法:打开configure文件,找到“#define USE_LIBICONV 1”,将注释去掉,并将1改成0。重新编译打开sphinx目录 如果编译成功 则会生成对应的目录。修改MySQL配置 要开启mysql的缓存,在mysql配置文件 /etc/my.cnf; 添加以下内容 query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576 # service mysqld restart #重启mysql修改配置文件重启bin/下生成主索引:./indexer --all --rotate[root@s4 bin]# ./indexer --all --rotateSphinx 2.3.2-id64-beta (4409612)Copyright (c) 2001-2016, Andrew AksyonoffCopyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)using config file '/www/server/sphinx/etc/sphinx.conf'...indexing index 'main'...WARNING: Attribute count is 0: switching to none docinfocollected 136 docs, 0.0 MBsorted 0.0 Mhits, 100.0% donetotal 136 docs, 13615 bytestotal 0.089 sec, 151880 bytes/sec, 1517.12 docs/secskipping non-plain index 'rt'...total 3 reads, 0.000 sec, 19.4 kb/call avg, 0.0 msec/call avgtotal 9 writes, 0.000 sec, 5.5 kb/call avg, 0.0 msec/call avgWARNING: failed to scanf pid from pid_file '/www/server/sphinx/var/log/searchd.pid'.WARNING: indices NOT rotated.