[MySQL] requete pour moteur de recherche ?
Nico
-
atspinto Messages postés 338 Date d'inscription Statut Membre Dernière intervention -
atspinto Messages postés 338 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je recherche la meilleur requete possible pour mon moteur de recherche, qui a ce jour rame un peu...
j'ai essayé quelques requetes et à l'heure actuelle je me suis arreté sur cette requete :
(SELECT sites.* FROM sites WHERE CONCAT(nom, description) LIKE '%$mot%') UNION (SELECT sites.* FROM sites WHERE $condition_union_and) UNION (SELECT sites.* FROM sites WHERE $condition_union_or)
avec par exemple, si tape "meilleur du web" :
$condition_union_and = " CONCAT(nom, description) LIKE '%meilleur% and CONCAT(nom, description) LIKE '%du% and CONCAT(nom, description) LIKE '%web% '";
et
$condition_union_and = " CONCAT(nom, description) LIKE '%meilleur% or CONCAT(nom, description) LIKE '%du% or CONCAT(nom, description) LIKE '%web% '";
Côté qualité des résutats retournés, je suis satisfait, par contre, coté perf, c'est pas terrible, et si on tape une phrase avec une dizaine de mots, j'écroule ma base...
Bref, je voudrais avoir votre avis, et vos conseils.
Merci par avance.
Nico.
Je recherche la meilleur requete possible pour mon moteur de recherche, qui a ce jour rame un peu...
j'ai essayé quelques requetes et à l'heure actuelle je me suis arreté sur cette requete :
(SELECT sites.* FROM sites WHERE CONCAT(nom, description) LIKE '%$mot%') UNION (SELECT sites.* FROM sites WHERE $condition_union_and) UNION (SELECT sites.* FROM sites WHERE $condition_union_or)
avec par exemple, si tape "meilleur du web" :
$condition_union_and = " CONCAT(nom, description) LIKE '%meilleur% and CONCAT(nom, description) LIKE '%du% and CONCAT(nom, description) LIKE '%web% '";
et
$condition_union_and = " CONCAT(nom, description) LIKE '%meilleur% or CONCAT(nom, description) LIKE '%du% or CONCAT(nom, description) LIKE '%web% '";
Côté qualité des résutats retournés, je suis satisfait, par contre, coté perf, c'est pas terrible, et si on tape une phrase avec une dizaine de mots, j'écroule ma base...
Bref, je voudrais avoir votre avis, et vos conseils.
Merci par avance.
Nico.
A voir également:
- [MySQL] requete pour moteur de recherche ?
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Google moteur de recherche page d'accueil - Guide
- Copernic moteur de recherche - Télécharger - Navigateurs
- Pourquoi mon moteur de recherche change tout seul ✓ - Forum Virus
- Copernic Desktop Search - Télécharger - Utilitaires
2 réponses
slut.
Je suis pas un expert MySQL, juste un simple utilisateur.
Pour fonctionner dans le meme sens ke ta precedente requete, apres avoir eu le mot :
- divise le en fonction des espaces avec un explode
- tu crée un nouveau mot : "meilleur du web" => "%meilleur%du%web%"
- et tu fais ta requete dans le genre : SELECT sites.* FROM sites WHERE nom LIKE '$mot' or description LIKE '$mot';
Tu devrais obtenir un resultat dans un bon délai.
Fais moi part du resultat.
Je suis pas un expert MySQL, juste un simple utilisateur.
Pour fonctionner dans le meme sens ke ta precedente requete, apres avoir eu le mot :
- divise le en fonction des espaces avec un explode
- tu crée un nouveau mot : "meilleur du web" => "%meilleur%du%web%"
- et tu fais ta requete dans le genre : SELECT sites.* FROM sites WHERE nom LIKE '$mot' or description LIKE '$mot';
Tu devrais obtenir un resultat dans un bon délai.
Fais moi part du resultat.