[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 ?
- Google moteur de recherche page d'accueil - Guide
- Copernic moteur de recherche - Télécharger - Navigateurs
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche de pairs utorrent ✓ - Forum Téléchargement
- Moteur de recherche yahoo revient toujours ✓ - Forum Virus
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.