| |
Savez-vous bien utiliser les outils de mesure d'audience ? Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ? Savez-vous utiliser les bons outils pour booster votre taux de transformation ? La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions ! ===> Informations et inscriptions.
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
de_prog Nouveau WRInaute
Inscrit le: 24 Mai 2007 Messages: 28 Localisation: paris
|
Posté le : Ven Jan 18, 2008 9:27 Sujet du message: info sur requete mysql MATCH () AGAINST() |
|
|
Bonjour,
j'ai un gros problème avec une requete !!
j'ai un moteur de recherche sur une base d'infos (+ de 22 000 enregistrement).
Les requetes du genre where titre LIKE '$kekchose' or texte LIKE '$kekchose' étant très lente, j'ai opté pour le FULLTEXT.
j'ai mis mes champs titre et texte en FULLTEXT et transformé mes requetes en :
where MATCH (titre,texte) AGAINST('$kekchose') => résultat pas pertinent du tout !!!, me sors des résultats ou il n'y as pas $kekchoses et des fois des résultats ou il y a $kekchoses de façon aléatoire.
De même, j'ai en parcourant internet transformé ma reuqte en
where MATCH (titre,texte) AGAINST('$kekchose' IN BOOLEAN MODE) => pas mieux,bref mon moteur de recherche est plus rapide mais carrément pas pertinant du tout.
Quelqun peut t'il m'éclairer sur le sujet... ?
Merci d'avance pour votre aide. |
|
| |
|
 |
finstreet WRInaute accro

Inscrit le: 10 Juil 2005 Messages: 9891
|
Posté le : Ven Jan 18, 2008 10:13 Sujet du message: info sur requete mysql MATCH () AGAINST() |
|
|
tu entends quoi par pertinent ?
(c'est pour faire avancer le pb) |
|
| |
|
 |
totoro WRInaute passionné

Inscrit le: 28 Juil 2004 Messages: 883 Localisation: Devant le bouzin
|
Posté le : Ven Jan 18, 2008 11:22 Sujet du message: info sur requete mysql MATCH () AGAINST() |
|
|
Salut,
Essaye avec qqch du genre :
| Code: |
| SELECT ... FROM matable WHERE MATCH (titre) AGAINST ('$kekchose') |
Si tu peux éviter le mode booleen, evite le, ca va ralentir le moteur pour pas grand chose ...
Attention avec match against tu as des configurations à faire pour ne pas être piégé et avoir des retours pertinents (Fichier my.cnf):
- la longueur des expressions => ft_min_word_len
Cela permet de ne pas rechercher sur les mots de moins de 3 lettres par exemple
- certains mots sont rejetés, la liste se parametre avec la variable ft_stopword_file
La meilleur source d'info sur la question: http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html |
|
| |
|
 |
webmasterlamogere WRInaute accro

Inscrit le: 17 Déc 2006 Messages: 1689 Localisation: urlrewriting.fr
|
Posté le : Ven Jan 18, 2008 11:25 Sujet du message: info sur requete mysql MATCH () AGAINST() |
|
|
match retourne un nombre qui est d'autant plus grand que le résultat "match" :
| Code: |
| where MATCH (titre,texte) AGAINST('$kekchose') > 10 |
Le 10 est a adapter à la hausse pour être plus précis. |
|
| |
|
 |
de_prog Nouveau WRInaute
Inscrit le: 24 Mai 2007 Messages: 28 Localisation: paris
|
Posté le : Lun Jan 21, 2008 12:10 Sujet du message: info sur requete mysql MATCH () AGAINST() |
|
|
| Ok , merci pour vos réponses, je vais regarder tout ça et tester, je vous tiens au courant !!! |
|
| |
|
 |
de_prog Nouveau WRInaute
Inscrit le: 24 Mai 2007 Messages: 28 Localisation: paris
|
Posté le : Mar Jan 22, 2008 11:54 Sujet du message: info sur requete mysql MATCH () AGAINST() |
|
|
ça y'est, j'ai bien compris ce que tu m'as dit webmasterlamogere et du coup je peux mieux trier les résultats de mes requetes.
En revanche, les résultats ne sont toujours pas ce que j'attend ... :
MATCH est égale à 0 sur une requete ou je recherche un mot qui est bien dans le texte !!!!
ex : le mot "Millionnaire" , le titre de l'article : Millionnaire et seule, avec le loto...
la requete :
| Code: |
select MATCH (titre) AGAINST (' Millionnaire '),texte,id,titre,date from articles WHERE ( MATCH (titre) AGAINST (' Millionnaire ')) > 0 ORDER BY date DESC |
sinon peut tu m'en dir plus totoro sur le fichier (Fichier my.cnf):
Bon, en tout cas merci pour votre aide, c'est déjà beaucoup mieux qu'au début !
je continue... |
|
| |
|
 |
webmasterlamogere WRInaute accro

Inscrit le: 17 Déc 2006 Messages: 1689 Localisation: urlrewriting.fr
|
Posté le : Mar Jan 22, 2008 14:10 Sujet du message: info sur requete mysql MATCH () AGAINST() |
|
|
je te conseil de lire cette page : -http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html
par exemple ce paragraphe :
| Citation: |
| Tous les mots corrects de la liste et de la requête sont pondérés en fonction de leur importance dans la liste ou la requête. De cette fa¸on, un mot présent dans de nombreuses lignes aura un poids faible (et peut être même un poids nul), car il a peu d'importance dans cette requête particulière. Au contraire, si le mot est rare, il recevra un poids fort. Le poids des mots sont alors rassemblés pour calculer la pertinence de la ligne... |
|
|
| |
|
 |
totoro WRInaute passionné

Inscrit le: 28 Juil 2004 Messages: 883 Localisation: Devant le bouzin
|
Posté le : Mar Jan 22, 2008 17:46 Sujet du message: info sur requete mysql MATCH () AGAINST() |
|
|
Peut etre comme ça :
| Code: |
select titre, texte, id, titre, date FROM articles WHERE ( MATCH (titre) AGAINST (' Millionnaire ')) ORDER BY date DESC |
Pour le my.cnf le lien que je t'ai filé http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html reste la référence pour se dépanner ... Tu n'en a pas forcément besoin, mais il faut juste savoir que des mots clés (par exemple "after" "afterwards" "again" "against", "certain" ...). |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
|
|