php如何连接coreseek

墨辰丷
墨辰丷 原创
2023-03-25 19:02:01 1120浏览

本篇文章主要介绍一个php和coreseek结合的例子,有对php如何连接coreseek感兴趣的小伙伴参考下。

以下是代码

<?php
require_once AN_ROOT."/inc/sphinxapi.php";
require_once AN_ROOT."/res/adodb/adodb.inc.php";
$keywords = $_REQUEST['keywords'];

$info    = getInfoCoreSeek($keywords,$_GET['page']);

function getInfoCoreSeek($keywords,$page=1) {
    $mode = SPH_MATCH_ANY;
    $host = "localhost";
    $port = 3312;
    $index = "*";
    $limit = 4;
    $ranker = SPH_RANK_PROXIMITY_BM25;

    if(!$page) $page=1;
    $page = intval($page);
    $off = ($page-1)*$limit;

    $cl = new SphinxClient ();
    $cl->SetServer ( $host, $port );
    $cl->SetConnectTimeout ( 1 );
    $cl->SetWeights ( array ( 100, 1 ) );
    $cl->SetMatchMode ( $mode );
    $cl->SetLimits ( $off, $limit, ( $limit>10000 ) ? $limit : 10000 );
    $cl->SetRankingMode ( $ranker );
    $cl->SetArrayResult ( true );
    $res    = $cl->Query ( join(" ", $keywords), $index );
    if($res) {
        $pageL    = PageQuery($res['total'],$page,4,"act=search&keywords=".$_REQUEST['keywords']);
        foreach($res['matches'] as $v) {
            $arrID[]    = $v['id'];    
        }
        $rs    = $GLOBALS['db']->GetAll("select id,title,content from info where id in(".join(',', $arrID).")");
        $GLOBALS['tpl']->assign('pageL', $pageL);
        //echo '<pre>';
        //print_r($res);
        //echo '</pre>';
        return $rs;
    }
}
?>

相关推荐:

linux下编译安装Sphinx、中文分词coreseek及PHP的sphinx扩展

coreseek (sphinx)+ Mysql + Thinkphp搭建中文搜索引擎详解

coreseek配置以及增量索引合并索引

以上就是php如何连接coreseek的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。