Recherchez des personnes par nom dans FQL
Je suis en train de développer une recherche de personnes par nom de la fonction à l'aide de l'Facebook API.
Je vais essayer cette FQL requête:
SELECT uid, username, name, pic_square FROM user WHERE strpos(name, 'Alfredo Artiles') >= 0
Mais j'obtiens un "Votre déclaration n'est pas indexable. La clause where doit contenir une indexables colonne." erreur.
J'ai aussi essayé d'ajouter un "et uid > 0" état, mais qui ne fonctionne pas trop.
Une idée?
OriginalL'auteur aartiles | 2010-12-07
Vous devez vous connecter pour publier un commentaire.
éditer plus tard
Ok, désolé pour l'erreur concernant strpos, je n'ai pas à me rappeler son existence la dernière fois que j'ai vérifié le fql docs. Le truc c'est qu'il peut être utilisé dans certains cas. Vous devez avoir un primar indexables colonne dans votre clause where et un deuxième état avec strpos (au moins c'est comment j'ai réussi à l'utiliser). Par exemple:
J'espère que cela clarifie un peu la confusion avec cette fonction.
Votre requête ne retourne qu'exacte de matchs
désolé pour l'erreur avec strpos, veuillez revérifier ma réponse pour voir ce que j'ai édité
recherche fulltext? Comme fulltext mysql? Non, il n'est pas possible.
Pour la casse de la recherche, de l'utilisation
strpos(lower(name), "input") >=0
et assurez-vous de bas-de-casse de votre entrée.OriginalL'auteur misterjinx
Je n'ai aucune idée de pourquoi ça marche, car elle viole le "au moins, et indexables champ OÙ", mais il n'.
EDIT: c'est là que je l'ai lu: lien
Désolé, mais je ne suis pas en train de travailler sur ce projet depuis longtemps et je ne m'en souviens pas. Sans doute, je viens de googlé
OriginalL'auteur Narcolessico
U besoin de spécifier l'uid dans la clause where aller chercher des détails dans le facebook de l'utilisateur table. nous n'avons pas le tous les détails de l'utilisateur.ici obtenir les détails de l'utilisateur actuellement connecté
OriginalL'auteur Prabin Tp
OUI, VOUS LE POUVEZ!!!
Essayez de rechercher dans la table de profil, à la place de l'utilisateur le tableau. Dans la table de profil, le nom de domaine est indexable, de sorte que votre déclaration devra changer un peu:
Contient n'est pas sensible à la casse alors que strpos est. Vous pouvez toujours utiliser la plus faible et strpos, mais vous auriez également le problème des caractères spéciaux. Contient est la solution.
Vous pouvez trouver tous les champs de la table de profil dans facebook doc:
Espère que cela aide!
OriginalL'auteur Ángela Cabanillas Alcázar