Moteur de recherche fulltext avec easyphp

samt01 Messages postés 16 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 octobre 2010 - 8 juil. 2006 à 14:19
cs_fabrice88 Messages postés 97 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 7 août 2015 - 16 sept. 2009 à 20:38
Voilà, je fais une requête avec l'option match mais il y a certains mots qu'elle ne trouve pas comme :

"eos" par exemple

alors que le mot eos existe dans les champs recheché

ou encore quand je tape un chiffre : 350 par exemple

ou alors lorsque le mot recherché comporte un s (photos)

et que je tape photo (donc sans s) ma requête ne trouve pas le mot.
quel est le moyen de résoudre ce problème?
Pourtant ma table est bien décrite en fulltext.
Je ne comprends pas, ça m'a l'air aléatoire. Il y a certains mot que mon meoteur de recherche trouve et d'autres qu'il ne trouve pas.
Est-ce vrai qu'il faut taper plus de 3 caractères?
Quand je mets un espace dans ma recherche, le moteur n'en tiens pas compte.
merci d'avance pour votre aide.

voici la description de ma table :

CREATE TABLE `lldiffusion_produit` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `marque` varchar(128) NOT NULL default '',
  `designation` varchar(128) NOT NULL default '',
  `univers` varchar(128) NOT NULL default '',
  `categorie` varchar(128) NOT NULL default '',
  `sous_categorie` varchar(128) NOT NULL default '',
  `resume_court` varchar(150) NOT NULL default '',
  `resume_long` text NOT NULL,
  `prix_ttc` decimal(10,2) unsigned NOT NULL default '0.00',
  `disponibilite` varchar(128) NOT NULL default '',
  `garantie` varchar(128) NOT NULL default '',
  PRIMARY KEY  (`id`),
  KEY `categorie` (`categorie`),
  FULLTEXT KEY `recherche` (`marque`,`designation`,`univers`,`categorie`,`sous_categorie`,`resume_long`)
) TYPE=MyISAM COMMENT='TABLE DES PRODUITS' AUTO_INCREMENT=1100 ;

et voici ma requête :

$sql = 'SELECT id,marque,designation,categorie,resume_court,prix_ttc,disponibilite FROM
lldiffusion_produit WHERE MATCH
(marque,designation,univers,categorie,sous_categorie,resume_long) AGAINST
("'.$mot.'")';

Une autre info, j'ai easyphp est-ce que ça pourrait venir de là?...

merci d'avance pour votre aide..

2 réponses

cs_mamedame Messages postés 1 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 7 janvier 2009
7 janv. 2009 à 11:11
Salut  il vous manque l'expression:IN BOOLEAN MODE dans votre requête sql.
Voila ce que vous devrez mettre:
$sql = 'SELECT id,marque,designation,categorie,resume_court,prix_ttc,disponibilite FROM
lldiffusion_produit WHERE MATCH
(marque,designation,univers,categorie,sous_categorie,resume_long) AGAINST
("'.$mot.'" IN BOOLEAN MODE)';
Essaie avec sa marche.
0
cs_fabrice88 Messages postés 97 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 7 août 2015
16 sept. 2009 à 20:38
Bonjour,
j'ai exactement le meme probleme et l'ajout de IN BOOLEAN MODE ne change rien
idem donc pour le cas avec photo avec un s et sans le s ....
la fcontion fulltext est soit vraiemnt pas au point ou alors beaucoup d'entre nous sont tres mauvais (bon pour moi je sais c normal mais beaucoup sont dans le meme cas).

autre remarque :
si je fais une recherche avec dans phpmyadmin pour par exemple sur le mot "paysages" : j'ai 15 resultats qui ressortent. maintenant si je passe par mon moteur de recherche avec la meme recherche je n'ai que 14 résultats. J'ai donc un resulat qui se perd quelque par.... (j'ai testé avec d'autres mot c'est pareil, un resultat en moins sur toutes les recherches

mon code est le suivant et je suis en plein dessu donc si il y a un génie dans le coin pour me donner un coup de main:
<?php
include("../admin/connexion-sql.php");

function search()
          {
$champ=$_POST['rechercherpar'];
$mot=$_POST['mot_cle'];

$resultat=mysql_query("SELECT * FROM IWgalerie WHERE match(type,ref,exemple,alt) against ('$mot' IN BOOLEAN MODE)");
$ligne=mysql_fetch_array($resultat);

   while($ligne = mysql_fetch_array($resultat))
          {
   $ref=$ligne['ref'];
   $alt=$ligne['alt'];
   $type=$ligne['type'];
 echo $ligne['id'].' '.$type.' '.$ref.' '.$alt.'

';
          }
          }
search();
?>




Photos Vosges : Regardez, respirez, aimez les Vosges
bonjour,
0
Rejoignez-nous