1. 首页
  2. 编程语言
  3. PHP
  4. linux 下实现 sphinx全文检索、分词详细步骤(包括生成增量索引)全干货

linux 下实现 sphinx全文检索、分词详细步骤(包括生成增量索引)全干货

上传者: 2022-07-02 12:48:27上传 .ZIP文件 494.39 KB 热度 9次

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.

下载地址
用户评论