|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : décembre 2003 Messages : 332 ![]() |
Bonjour à tous.
J'ai une base de données mysql contenant une table articles (identifiant, titre, contenu). J'indexe chaque article dans une table articles_mots_index : chaque mot rencontré dans titre et contenu est stocké dans la table. Voici la structure de la table : id_article, mot, nbr_mot (ce dernier champ correspondant au nombre de fois où le mot apparaît dans l'article). Je cherche à mettre en place une recherche où les utilisateurs peuvent saisir par exemple "bleu peur -(chat - chien)" Ce qui reviendrait à chercher les articles contenant "bleu" ou "peur sauf (chat sauf chien)". Je cherche des pistes de réflexion car je n'arrive pas à généraliser le raisonnement pour construire dynamiquement les différentes requêtes... Merci d'avance pour les pistes. ps : je sais qu'il existe des recherches plein texte dans les versions récentes de mysql, mais je dois utiliser le système décrit ci-dessus...
__________________
Pour vous inscrire au panel IPSOS sous mon parrainage |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Gérant - société de développement web Inscription : avril 2007 Messages : 290 ![]() |
Bonjour,
Petite question est déjà dans la possibilité de trier les mots en fonction qu'ils soient oui ou non interdit dans la recherche ? Ensuite ta recherche doit-elle être effectué sur le mot exact ou sur contient ce mot ? Idem pour ceux qui sont exclus on exclu le mot exact ou contient ce mot ? Cordialement,
__________________
Si vous débutez en PHP : Tutoriel pour grands débutants Mes tutoriels : http://alexandre-joly.developpez.com/ |
|
|
00
|
|
|
#3 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 991 ![]() |
C'est assez compliqué, il s'agit là de compiler une expression en langage SQL. Tu peux définir une grammaire simple à base d'opérateurs + et - qui seront traduits en AND ou OR ou NOT IN en SQL.
Est-ce que tu pourrais nous décrire cette grammaire ou nous donner davantage d'exemples ? Si ça peut t'aider, voici une classe que j'ai implémenté récemment pour gérer les routes d'une application MVC, la grammaire permet de transformer des templates de routes de la forme /{:controller}/hello/{:id:\d+} en éxpressions régulières: Code :
Une fonction qui t'aidera grandement dans la création de ce genre de syntaxe est strtok qui permet de découper une chaine selon une série de séparateurs (et non un seul comme le fait explode).
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
Copyright © 2000-2012 - www.developpez.com