2016-09-08 1 views
1

ceci est ma requête:SphinxQL constructeur de requête - comment ajouter plusieurs et/ou opérateurs pour correspondre

$query = SphinxQL::create($conn)->select('*') 
    ->from('my_index') 
    ->match('name', 'bird + monkey', true); 
    $result = $query->execute(); 

ajouter + ou || entre les valeurs des travaux (ce qui donne des résultats qui correspondent à « oiseau » et/ou « singe »).

Je voudrais ajouter plus d'un opérateur, quelque chose comme ceci:

$query = SphinxQL::create($conn)->select('*') 
    ->from('my_index') 
    ->match('name', '(bird + monkey) || cat', true); 
    $result = $query->execute(); 

J'ai essayé de regarder dans le Query Builder for SphinxQL et sphinxsearch documentation mais ne pouvait pas trouver un tel exemple.

+0

Essayez cette .. si cela ne fonctionne pas me faire savoir où ..... $ = « nom LIKE '% (oiseau + singe)%' ou le nom Félins « % de% '"; $ query = SphinxQL :: create ($ conn) -> select ('*') -> à partir de ('my_index') -> match ($ where); $ resultat = $ query-> execute(); –

+0

@KumarRakesh merci, mais il ne reconnaît pas le mot «LIKE», donne juste un résultat vide. fonctionne uniquement comme ceci: '$ where =" name '% bird%' ";' sans opérateur. – AnatPort

+0

D'où viennent les '+' et '||'? Les opérateurs Sphinx non plus! – barryhunter

Répondre

1

J'ai trouvé la réponse grâce à barryhunter. la bonne syntaxe est:

$query = SphinxQL::create($conn)->select('*') 
->from('my_index') 
->match('name', '("bird monkey") | cat', true); 
$result = $query->execute();