Algorithme de mon moteur de sites – Full-text, votre avis

Eléphanteau du PHP | 25 Messages

15 août 2012, 18:13

Bonjour,

J'ai élaboré un moteur de sites et je souhaite connaître votre avis sur ce qui me préoccupe..

La recherche s'effectue sur le titre du site, la description, les mots clefs, l'url et le texte html de toute la page concernée du site soumis (je le récupère au préalable et il est mis à jour tous les 48h00-72h00.

Lors d'une recherche sur mon moteur, j'effectue un calcul sur la "relevance" pour y indiquer l'ordre d'affichage selon les résultats (même si mon code n'est pas très académique, le tout fonctionne très bien..)


Bout de mon code
$query = "SELECT id, nomsite, description, mcles, url, urlrss, urlaff, texte, (     
       (2.25 * (MATCH (nomsite) AGAINST (".$qo1."".$out."".$qo2." IN BOOLEAN MODE)))     
        + (1.25 * (MATCH (description) AGAINST (".$qo1."".$out."".$qo2." IN BOOLEAN MODE)))     
        + (1.05 * (MATCH (mcles) AGAINST (".$qo1."".$out."".$qo2." IN BOOLEAN MODE)))     
        + (1.50 * (MATCH (url) AGAINST (".$qo1."".$out."".$qo2." IN BOOLEAN MODE)))
      + (1.10 * (MATCH (texte) AGAINST (".$qo1."".$out."".$qo2." IN BOOLEAN MODE)))      ) AS relevance FROM moteur_sites    
        WHERE ( MATCH (nomsite, description, mcles, url, texte) AGAINST (".$qo1."".$out."".$qo2." IN BOOLEAN MODE) ) AND valid='1' $fil HAVING relevance > 0 ORDER BY relevance DESC LIMIT $debut,$limit";  
Personnellement, je n'arrive pas à trouver le bon compromis…savoir ou donner le bon poids (valeur) sur mon calcul et surtout si tout est logique… j'avoue que je patauge un peu sur le choix le plus judicieux ?

A mon sens, il me semble que je dois donner de l'importance d'abord au titre du site, puis à l'url, à la description, au texte html et pour finir sur les mots clefs

Quelle valeur donneriez-vous ?

Actuellement….

Titre = 2.25
Description = 1.25
Mots-clefs = 1.05
url (url) = 1.50
Texte html = 1.10

Votre avis ?

Titre = ??
Description = ??
Mots-clefs = ??
url (url) = ??
Texte html = ??


D'avance merci pour votre aide
Cordialement
Yule

ViPHP
xTG
ViPHP | 7331 Messages

16 août 2012, 09:07

On fait souvent une recherche par mot clef, donc je placerai les mots clés avant le texte. ;)

Mammouth du PHP | 2278 Messages

16 août 2012, 10:01

Peut-être l'utilisateur pourrait-il lui-même définir les pondérations, quitte à proposer des jeux par défaut:
privilégier les motsclefs
privilégier la présence de mots particuliers dans le texte
é so on
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 25 Messages

16 août 2012, 19:07

Re,

Merci pour vos avis, je suis d'accord avec les mots clefs mais pour un annuaire... Avec les mots clefs, la pertinence n'est au top pour un moteur de sites... surtout si un bot passe tous les 48h00 sur la page concernée, donc à la longue, les mots cles auront une très mauvaise pertinence car il ne reflète pas toujours le thème du site..

Il faut dire que peux de gens connaissent les moteurs de sites, par conséquent, j'essaye d'avoir différent avis
D'avance merci
Yule

ViPHP
ViPHP | 4039 Messages

17 août 2012, 14:43

Tes requêtes sont en mode booléen. Tu as une raison particulière de faire cela ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 25 Messages

17 août 2012, 18:23

HEllo

Uniquement pour accroître la précision des recherches, vu que je suis sur un thème spécifique
MAis je te l'accorde... il y aura des avantages et des désavantages..
A+
Steve