"; $ResultArray = array(); return $ResultArray; }; $config = new Config(); $conn = new Connection( ); $pdo = $conn->prepareQuery(); $maxresults = $config->search_max_results(); $db = $config->sql_dbname(); $tbl = $config->sql_tablename_publish_de(); $index = $config->sql_dbname(); $cl = new SphinxClient(); $q = $SearchQuery; $sql = ""; $host = "localhost"; $port = 9312; $groupby = ""; $groupsort = "@group desc"; $filter = "group_id"; $filtervals = array(); $distinct = ""; $sortby = ""; $limit = $maxresults; $ranker = SPH_RANK_PROXIMITY_BM25; $select = ""; $docids = array(); //$mode = "SPH_MATCH_FULLSCAN"; //$mode = "SPH_MATCH_ANY"; //$mode = "SPH_MATCH_BOOLEAN"; //$mode = "SPH_MATCH_EXTENDED"; $mode = 'SPH_MATCH_EXTENDED2'; //$mode = "SPH_MATCH_PHRASE"; //echo "good"; //////////// // do query ////////////127.0.0.1:9312 // $cl->SetServer("/var/run/searchd.sock", 0); $cl->SetServer ( $host, $port ); $cl->SetConnectTimeout ( 3 ); $cl->SetArrayResult ( true ); $cl->SetMatchMode ( SPH_MATCH_ANY ); $cl->SetFieldWeights ( array ( "p_headline"=>10, "p_articletext"=>8, "p_picture_1_description"=>4,"p_tags"=>7 ) ); $cl->ResetFilters(); //$cl->SetSortMode( SPH_SORT_RELEVANCE ); $cl->SetSortMode ( SPH_SORT_EXTENDED, "@relevance DESC" ); $cl->SetRankingMode( $ranker ); $cl->SetGroupDistinct ( $distinct ); //if ( $sortby ) $cl->SetSortMode ( SPH_SORT_EXTENDED, $sortby ); //if ( $sortexpr ) $cl->SetSortMode ( SPH_SORT_EXPR, $sortexpr ); $cl->SetSelect ( $select ); $cl->SetLimits ( 0, $maxresults ); //echo "good 2"; $res = $cl->Query ( $q, $index ); //echo "good 3"; if ( $res===false ) { // echo "Query failed: " . $cl->GetLastError() . ".\n"; } else { // if ( $cl->GetLastWarning() ) { // echo "WARNING: " . $cl->GetLastWarning() . "\n\n"; // }; // echo count($res["matches"]); // echo "
"; if ( is_array($res["matches"]) ) { $n = 1; foreach ( $res["matches"] as $docinfo ) { // echo "$n. doc_id=$docinfo[id], weight=$docinfo[weight]
"; array_push($docids, $docinfo["id"]); } } } // print_r($docids); $ResultArray = array(); if (count($docids) <= 0 ){ return $ResultArray; // gib leeres array zurück }; $SqlQuery = "SELECT p_headline,p_shortcode,p_timestamp,p_isonline,p_articletext,p_picture_1_description FROM $tbl WHERE"; for ($i=0;$i<=count($docids) - 1;$i++){ if ($i>0){ $SqlQuery .= "\"$docids[$i]\","; } elseif($i<=0){ $SqlQuery .= " `id` IN (\"$docids[$i]\","; }; }; $SqlQuery = substr($SqlQuery,0,(strlen($SqlQuery)-1)); $SqlQuery .=") AND p_isonline=1 ORDER BY p_timestamp DESC LIMIT $maxresults;"; $stmt = $pdo->prepare($SqlQuery); // AND p_online=1 $stmt->execute(); while($rows = $stmt->fetch(PDO::FETCH_ASSOC)) { $headline = $rows["p_headline"]; $shortcode = $rows["p_shortcode"]; $article = $rows["p_articletext"]; $pic_desc = $rows["p_picture_1_description"]; /* $author = $rows["p_authorname"]; $backlink = $rows["p_backlink"]; $category_id = $rows["p_category"]; */ if (strlen($headline)>5){ array_push($ResultArray, "$headline#####$shortcode#####$article#####$pic_desc\n"); } // echo "$mode ---> $fn#####$path
\n"; }; # while( $sql_results = mysql_fetch_array($results)) { } return $ResultArray; } // function SphinxSearch( $SearchQuery, $catg ){ } ?>