2010-09-30 9 views
1

Im commence à apprendre la recherche php sphynx apiSPHINX recherche php requête, comment afficher les résultats d'un tableau?

après l'exécution de cette requête

<?php 
    include('sphinxapi.php'); 
    $cl = new SphinxClient(); 
    $cl->SetServer("192.168.0.100", 9312); 
    $cl->SetMatchMode(SPH_MATCH_ANY ); 
    $result = $cl->Query("mimmi", "searchtest"); 

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

     if (! empty($result["matches"])) { 
      foreach ($result["matches"] as $doc => $docinfo) { 
       echo "$doc\n"; 
      } 

      print_r($result); 
     } 
    } 

    exit; 
?> 

Comment afficher correctement les résultats, il apparaît comme sortie ce

2183 3262 5256 7812 838 1475 1701 6184 1816 Array ([error] => [warning] => [status] => 0 [fields] => Array ([0] => namn [1] => title [2] => identification_text [3] => id [4] => namn [5] => title [6] => identification_text [7] => description) [attrs] => Array () [matches] => Array ([2183] => Array ([weight] => 6 [attrs] => Array ()) [3262] => Array ([weight] => 6 [attrs] => Array ()) [5256] => Array ([weight] => 6 [attrs] => Array ()) [7812] => Array ([weight] => 6 [attrs] => Array ()) [838] => Array ([weight] => 4 [attrs] => Array ()) [1475] => Array ([weight] => 4 [attrs] => Array ()) [1701] => Array ([weight] => 4 [attrs] => Array ()) [6184] => Array ([weight] => 4 [attrs] => Array ()) [1816] => Array ([weight] => 2 [attrs] => Array ())) [total] => 9 [total_found] => 9 [time] => 0.001 [words] => Array ([mimmi] => Array ([docs] => 9 [hits] => 46))) 

je ne suis pas savoir quoi en faire, comment puis-je afficher les résultats.

+0

wtf? http://stackoverflow.com/questions/3821493/sphinx-search-does-searchd-has-to-run-as-a-service-to-make-it-work-with-php – user187291

+0

ouais désolé, j'ai fait ça question hier, mais maintenant je ne peux pas choisir accepter la réponse pour cela – Max

Répondre

2

À ce stade, vous voulez prendre les ID retournés par sphinx et interroger votre base de données avec eux.

<?php 
    $IDs = implode(",",array_keys($result["matches"])); 
    $sql = "SELECT * FROM `tbl` WHERE `id` IN ($IDs) ORDER BY FIELD(`id`,$IDs)"; 
?> 
+0

que ce que vous êtes censé faire ?, avez-vous fait cela vous-même avec sphinx? – Max

+0

merci ça marche bien – Max

+0

Content de pouvoir aider :-) – PureForm

2

Les champs vous déclarez dans votre /etc/sphinxsearch/sphinx.conf sera disponible en $ result [ '']: matchs

sql_field_string = my_field # will be both indexed and stored 

De cette façon, il n'y a pas besoin d'interroger la base de données

Questions connexes