2017-10-04 2 views
0

Bon moment de la journée!Exécuter la recherche de catégorie Sphinx php

Il est telle config Sphinx

source txtcontent : ru_config 
{ 
    sql_query = SELECT `id` as `txt_id`, 1 as index_id, `type_id`,`content_type_id`, `title`, `annonce`, `content` FROM `TxtContent` WHERE `status` = 1 AND `content_type_id` != 14 
    sql_attr_uint = index_id 
    sql_attr_uint = type_id 
} 

Le tableau complet est indexé et est stocké dans un grand index de recherche. Quand il vient de trouver ce qui est en elle alors tout fonctionne bien

Mais aujourd'hui, la tâche était de rechercher des catégories Les catégories décrites dans le domaine et ont un type_id de type int Comment en php utilisant SphinxAPI pour effectuer un tel une recherche? La recherche classique ressemble à ceci.

$sphinxClient = new SphinxClient(); 
$sphinxClient->SetServer("127.0.0.1", 3312); 
$sphinxClient->SetLimits(0, 700,700); 
$sphinxClient->SetSortMode(SPH_SORT_RELEVANCE); 
$sphinxClient->SetArrayResult(true); 
$result = $sphinxClient->Query($this->query, 'txtcontent provider item'); 

J'ai essayé d'ajouter

$ sphinxClient-> SetFilter ('type_id', '1');

Pour rechercher uniquement lorsque type_id = 1 mais cela n'a pas aidé.

En fait, comment puis-je rechercher une catégorie spécifique? option pour trouver tout en PHP pour laisser aller le résultat excès n'est pas considéré (sinon, la recherche sera alors saturada limite existante) comment le faire "correctement" via l'API sans placer chaque sujet dans un index de recherche séparé?

+0

a trouvé la réponse à votre question https://ru.stackoverflow.com/questions/726122/%d0%92%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0% b5% d0% bd% d0% b8% d0% b5-% d0% bf% d0% be% d0% b8% d1% 81% d0% ba% d0% b0-% d0% b2-% d0% ba% d0 % b0% d1% 82% d0% b5% d0% b3% d0% être% d1% 80% d0% b8% d0% b8-sphinx-php/726421 # 726421 –

Répondre

0

setFilter prend un Array des valeurs. Et ils doivent être numérique (type_id est un attribut numérique)

$sphinxClient->SetFilter('type_id',array(1)); 

La classe sphinxapi utilise actully assertions pour détecter des données non valides comme ça, que je suppose que vous avez désactivé (autrement de vue!).