php使用sphinx

1.安装sphinx
sphinx的安装和使用

2.使用sphinx php api测试:


<?php
require ( "sphinxapi.php" );   //此文件在sphinx源代码的api文件夹中可以找到

$cl = new SphinxClient ();

$q = "weibo";
$sql = "test1";
$mode = SPH_MATCH_ALL;
$host = "localhost";
$port = 9312;
$index = "*";
// $groupby = "";
// $groupsort = "@group desc";
// $filter = "group_id";
// $filtervals = array();
// $distinct = "";
// $sortby = "";
// $sortexpr = "";
// $limit = 20;
// $ranker = SPH_RANK_PROXIMITY_BM25;
// $select = "";
 
$cl->SetServer ( $host, $port );
$cl->SetConnectTimeout ( 1 );
$cl->SetArrayResult ( true );
$cl->SetMatchMode ( $mode );
// if ( count($filtervals) )    $cl->SetFilter ( $filter, $filtervals );
// if ( $groupby )                $cl->SetGroupBy ( $groupby, SPH_GROUPBY_ATTR, $groupsort );
// if ( $sortby )                $cl->SetSortMode ( SPH_SORT_EXTENDED, $sortby );
// if ( $sortexpr )            $cl->SetSortMode ( SPH_SORT_EXPR, $sortexpr );
// if ( $distinct )            $cl->SetGroupDistinct ( $distinct );
// if ( $select )                $cl->SetSelect ( $select );
// if ( $limit )                $cl->SetLimits ( 0, $limit, ( $limit>1000 ) ? $limit : 1000 );
//$cl->SetRankingMode ( $ranker );
$res = $cl->Query ( $q, $index );
 
////////////////
// print me out
////////////////
 
if ( $res===false )
{
    print "Query failed: " . $cl->GetLastError() . ".<br/>";
 
} else
{
    if ( $cl->GetLastWarning() )
        print "WARNING: " . $cl->GetLastWarning() . "<br/><br/>";
 
    print "Query '$q' retrieved $res[total] of $res[total_found] matches in $res[time] sec.<br/>";
    print "Query stats:<br/>";
    if ( is_array($res["words"]) )
        foreach ( $res["words"] as $word => $info )
            print "    '$word' found $info[hits] times in $info[docs] documents\n";
    print "<br/>";
 
    if ( is_array($res["matches"]) )
    {
        $n = 1;
        print "Matches:<br/>";
        foreach ( $res["matches"] as $docinfo )
        {
            print "$n. doc_id=$docinfo[id], weight=$docinfo[weight]";
            foreach ( $res["attrs"] as $attrname => $attrtype )
            {
                $value = $docinfo["attrs"][$attrname];
                if ( $attrtype==SPH_ATTR_MULTI || $attrtype==SPH_ATTR_MULTI64 )
                {
                    $value = "(" . join ( ",", $value ) .")";
                } else
                {
                    if ( $attrtype==SPH_ATTR_TIMESTAMP )
                        $value = date ( "Y-m-d H:i:s", $value );
                }
                print ", $attrname=$value";
            }
            print "<br/>";
            $n++;
        }
    }
}

?>

打印的结果:

Query 'weibo' retrieved 1000 of 3873 matches in 0.001 sec.
Query stats:
'weibo' found 3873 times in 3873 documents 
Matches:
1. doc_id=1, weight=1, import_timestamp=2015-06-26 16:25:41
2. doc_id=4, weight=1, import_timestamp=2015-06-26 16:25:41
3. doc_id=5, weight=1, import_timestamp=2015-06-26 16:25:41
4. doc_id=6, weight=1, import_timestamp=2015-06-26 16:25:41
5. doc_id=8, weight=1, import_timestamp=2015-06-26 16:25:41
6. doc_id=9, weight=1, import_timestamp=2015-06-26 16:25:41
7. doc_id=10, weight=1, import_timestamp=2015-06-26 16:25:41
8. doc_id=11, weight=1, import_timestamp=2015-06-26 16:25:41
9. doc_id=12, weight=1, import_timestamp=2015-06-26 16:25:41
10. doc_id=13, weight=1, import_timestamp=2015-06-26 16:25:41
11. doc_id=14, weight=1, import_timestamp=2015-06-26 16:25:41
12. doc_id=15, weight=1, import_timestamp=2015-06-26 16:25:41
13. doc_id=16, weight=1, import_timestamp=2015-06-26 16:25:41
14. doc_id=17, weight=1, import_timestamp=2015-06-26 16:25:41
15. doc_id=18, weight=1, import_timestamp=2015-06-26 16:25:41
16. doc_id=19, weight=1, import_timestamp=2015-06-26 16:25:41
17. doc_id=20, weight=1, import_timestamp=2015-06-26 16:25:41
18. doc_id=21, weight=1, import_timestamp=2015-06-26 16:25:41
19. doc_id=22, weight=1, import_timestamp=2015-06-26 16:25:41
20. doc_id=23, weight=1, import_timestamp=2015-06-26 16:25:41
Last modification:August 26th, 2019 at 04:44 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment