info sur requete mysql MATCH () AGAINST()
8 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
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.
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.
Salut,
Essaye avec qqch du genre :
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/ ... earch.html
Essaye avec qqch du genre :
- Code: Tout sélectionner
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/ ... earch.html
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
match retourne un nombre qui est d'autant plus grand que le résultat "match" :
Le 10 est a adapter à la hausse pour être plus précis.
- Code: Tout sélectionner
where MATCH (titre,texte) AGAINST('$kekchose') > 10
Le 10 est a adapter à la hausse pour être plus précis.
ç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 :
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...
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: Tout sélectionner
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

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
je te conseil de lire cette page : -http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html
par exemple ce paragraphe :
par exemple ce paragraphe :
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...
Peut etre comme ça :
Pour le my.cnf le lien que je t'ai filé http://dev.mysql.com/doc/refman/5.0/fr/ ... earch.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" ...).
- Code: Tout sélectionner
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/ ... earch.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" ...).
8 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Yahoo! Site Match
- Google API : guide de développement de l'API Google
- Wikia Search sort en version alpha : premières impressions
- Gestion des langues et des sessions en PHP / MySQL
- Web Rank Info ouvre un forum dédié à MSN Search
- Les blogs (Search Engine Strategies 2004 - San José)
- Nombre moyen de mots par requête : statistiques AOL Août 2006
- l'attribut rel=nofollow contre le spam de commentaires ?
- 200 000 messages sur les forums Web Rank Info
- Google Labs lance Google Alternate Views
Consultez la description détaillée des produits ou services de Google suivants : Google Alternate Views
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum