ホームページ  >  記事  >  バックエンド開発  >  PHPでcoreseekに接続する方法

PHPでcoreseekに接続する方法

墨辰丷
墨辰丷オリジナル
2018-05-10 16:03:521477ブラウズ

この記事では主にphpとcoreseekの組み合わせ例を紹介しますので、phpとcoreseekの接続方法に興味のある方は参考にしてみてください。

以下はコードです

​​
<?php
require_once AN_ROOT."/inc/sphinxapi.php";
require_once AN_ROOT."/res/adodb/adodb.inc.php";
$keywords = $_REQUEST[&#39;keywords&#39;];

$info    = getInfoCoreSeek($keywords,$_GET[&#39;page&#39;]);

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[&#39;total&#39;],$page,4,"act=search&keywords=".$_REQUEST[&#39;keywords&#39;]);
        foreach($res[&#39;matches&#39;] as $v) {
            $arrID[]    = $v[&#39;id&#39;];    
        }
        $rs    = $GLOBALS[&#39;db&#39;]->GetAll("select id,title,content from info where id in(".join(&#39;,&#39;, $arrID).")");
        $GLOBALS[&#39;tpl&#39;]->assign(&#39;pageL&#39;, $pageL);
        //echo &#39;<pre class="brush:php;toolbar:false">&#39;;
        //print_r($res);
        //echo &#39;
'; return $rs; } } ?>

関連する推奨事項:

Linux上でSphinx、中国語単語分割coreseek、およびPHPのsphinx拡張機能をコンパイルしてインストールします

coreseek (sphinx) + Mysql + Thinkphpの詳細な説明中国語の検索エンジンを構築します

coreseek構成と増分インデックスマージインデックス

以上がPHPでcoreseekに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:phpのソート方法次の記事:phpのソート方法