";
$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 ){
}
?>