欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

使用阿里云搜索搭建强大的搜索引擎

程序员文章站 2023-12-28 18:48:52
...
跳至
setLifeTime(1);

$ch_url_handle = parse_url($_SERVER['REQUEST_URI']);
if ($cache->start(preg_replace("/&|=/is", '', $ch_url_handle['query'])))
    exit(0);
//@TODO 缓存文件分级
//end 缓存
include './gs_function.php';
include './class/css.class.php';
include './class/dataHelper.class.php';

$P_QUERY = mysql_escape_string($_GET['q']); // 搜索关键字
$P_TYPE = (int) mysql_escape_string($_GET['t']);
include './tpl/main_search_head.php'; // 加载页面头部
// 进行云搜索
try {
    $css_api = new CloudSearchApi();
    $param_type = array('book', 'blog', 'art', 'bbs', 'qa'); // 索引列表
    $indexName = key_exists($P_TYPE, $param_type) ? $param_type[(int) $_GET['t']] : $param_type[0]; // load索引列表 添加参数过滤
    $index = $css_api->getIndex($indexName);
    $P_PAGES_LITE = isset($_GET['pl']) ? (int) $_GET['pl'] : 15; //设置每页显示结果数
    $P_CUR_PAGES = isset($_GET['p']) ? (int) $_GET['p'] !== 0 ? (int) $_GET['p'] : 1  : 1; //GET参数过滤
    $results = $index->search('q=' . $P_QUERY, $P_CUR_PAGES, $P_PAGES_LITE); //云端执行搜索,下面是结果处理

    if (isset($results["result"]["total"]) && $results["result"]["total"] != 0) {
        //搜索返回大于0个结果 正常显示
        $R_searchtime = $results["result"]['searchtime'];
        $R_total = $P_PAGES_TOTAL = $results["result"]['total'];
        $P_SP = dataHelper::splitPages($P_PAGES_TOTAL, $P_PAGES_LITE); //获取分页总数
        //print_r($results);
        include './tpl/main_search_result.php';
        $cache->end();
    } else {
        //没结果 显示错误页面
    }
} catch (Exception $e) {
    //#TODO 添加用户自己的失败处理逻辑
}
?>

上一篇:

下一篇: