2010-10-16 6 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 
} 

Моя база данных:Sphinx Mysql проблема запрос

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

PHP код сфинкс (поиск)

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

Этот код возвращается:

2 

Как теперь я используя sphinx для вывода всех данных id 2 ??

Извините за плохой английский

ответ

2

Теперь вы можете считать, что ID возвращается в $ результата и запроса к базе данных с ним.

Что-то вроде:

<?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

Спасибо .. Я думал, что у Сфинкса его функция – Isis