2010-10-16 13 views
0
source logs 
{ 
    type   = mysql 
    sql_host  = localhost 
    sql_user  = root 
    sql_pass  = 
    sql_db   = bot 
    sql_port  = 3306 
    sql_query_pre = SET NAMES utf8 
    sql_query  = SELECT * FROM logs 

    sql_attr_uint = host 

    sql_query_info = SELECT * FROM logs WHERE id=$id 
} 

index logs 
{ 
    source   = logs 
    path   = D:\Webserver/Sphinx/index/logs 
    morphology  = stem_ru, stem_en 
    min_word_len = 1 
    charset_type = utf-8 
} 

searchd 
{ 
    listen  = 9312 
    log   = D:\Webserver/Sphinx/log/searchd.log 
    query_log = D:\Webserver/Sphinx/log/query.log 
    pid_file = D:\Webserver/Sphinx/log/searchd.pid 
} 

Ma base de données:problème de recherche Sphinx Mysql

ID  |  HOST  |  POST  |  URL 
1  |  yahoo.com | *js3s7Hs56  | http://yahoo.com  
2  |  google.com | 7sf6jsg73  | http://google.com/?asfaa=23 

Code PHP Sphinx (recherche)

<?php 
    include('sphinxapi.php'); 

    $cl = new SphinxClient(); 
    $cl->SetServer("localhost", 9312); 

    $cl->SetMatchMode(SPH_MATCH_ANY ); 
    $result = $cl->Query("google"); 


    if ($result === false) 
    { 
      echo "Query failed: " . $cl->GetLastError() . ".\n"; 
    } 
    else 
    { 
     print_r($result); 
    } 

Ce code est retourné:

2 

Comme maintenant je suis utilisant sphinx pour retirer toutes les données id 2 ??

Désolé pour le mauvais anglais

Répondre

2

Vous pouvez maintenant prendre cet ID est retourné dans le résultat de $ et d'interroger la base de données avec elle.

Quelque chose comme:

<?php 
    foreach ($result['IDs'] as $ID) { 
     $r = mysqli_query('SELECT * FROM `table` WHERE `ID` = ' . $ID); 
     # Handle $r 
    } 

    # Or, more efficiently (depending on how many results you have): 

    $IDs = implode(',',array_map('intval',$result['IDs'])); 
    $r = mysqli_query('SELECT * FROM `table` WHERE `ID` IN (' . $IDs . ')'); 
    # Handle $r 
+0

Merci .. Je pensais que le Sphinx est sa fonction – Isis

Questions connexes