2011-11-16 4 views
0

Je travaille sur un script de mise à jour delta et chaque fois que j'essaie d'utiliser cette commande:Sphinx MySQL sous-requête ne fonctionne pas correctement

SELECT id, title, search 
FROM related 
WHERE id > 
(
    SELECT max_doc_id 
    FROM sphinx_delta 
    WHERE counter_id = 2 
) 

Course à phpMyAdmin renverrait 10 résultats.

SELECT id, title, search 
FROM related 
WHERE id > 1010 

Course à phpMyAdmin retourneraient les 10 mêmes résultats. Bien sûr, la valeur renvoyée par le sous-select est 1010.

Le seul problème est que lorsque j'utilise la première requête dans Sphinx search, elle renvoie 0 résultats, alors que la seconde renvoie 10 résultats. Je n'ai aucune idée de ce qui ne va pas, les deux requêtes fonctionnent parfaitement dans MySQL, et j'ai utilisé le tutoriel sur le site Sphinx pour créer le fichier de configuration.

est ici la partie de mon fichier de configuration:

source delta2 : related 
    { 
      type  = mysql 

      sql_host = localhost 
      sql_user = * 
      sql_pass = * 
      sql_db  = base 
      sql_port = 3306 

      sql_query = SELECT id, title, search FROM related WHERE id > (SELECT max_doc_id FROM sphinx_delta WHERE counter_id = 2) 
    } 

J'ai essayé de poster ce sur le forum Sphinx, mais a reçu 0 réponses. Toutes les suggestions, j'ai migré de 0.9.9 à la dernière version en espérant qu'il serait le réparer, il n'a pas été en mesure de le réparer.

+0

Avez-vous essayé d'utiliser 'Sphinx search' pour exécuter la sous-requête? Qu'est-ce qu'il a retourné? Je suppose que c'est là que votre problème est. –

+0

Comment est-ce que j'exécuterais la sous-requête par la recherche de sphinx et savoir quelles valeurs elle a renvoyées? –

+0

Je suis retourné et relooké sur le tutoriel, et sur les dernières phrases, il souligne l'importance de sql_query_pre, Si vous ne mettez pas "sql_query_pre = SET NAMES utf8" après chaque requête UNIQUE, ne fonctionnera pas correctement. Ça fonctionne maintenant. –

Répondre

0

Vous mettez à jour le delta en essayant de lire depuis le delta? sphinx ne met pas à jour les index, il les recrée, il n'y a rien à lire.

+0

Je ne suis pas sûr de ce que vous essayez d'obtenir ... Mental ma terminologie, j'ai peut-être utilisé des termes incorrects pour décrire mon problème, mais ce n'est pas pertinent si vous lisez réellement ma question. –

Questions connexes