moteur de recherche -> indexation des données !!!

moteur de recherche -> indexation des données !!! - SQL/NoSQL - Programmation

Marsh Posté le 19-05-2006 à 10:55:25    

Bonjours à tous,
J'ai une petite série de question !!!!!
le but est de faire un moteur de recherche assez important (bien sur pas un géant mais un moyen)
il aurait au moins un serveur dédié !!
 
Voila j'ai fait un parseur Html et css etc...
maintenant j'arrive a avoir assez de données pour me lancer dans l'indexation :
J'ai le contenu de la page (cache)
je retrouve les morceaux de phrases et son nombre d'occurence
idem pour tous les mots  
 
je sais quand le texte est en gras et quand il l'est pas  
l'ensemble des liens ( en local ) qu'il y a dans la page !
 
 
je peux tout sortir maintenant et je voulais savoir comment faire pour le mettre dans une base de données !
 
J'ai choisi Mysql 5.0 ( je travail dessus depuis toujours)
 
Mes questions :
 
Pour faire une requete le plus rapidement possible comment faut t-il faire ?  
 
est ce qu'il vaut mieux faire plusieurs tables ? plusieurs base de données ?
 
pour la structure des tables je pensais faire :
 

Code :
  1. table mot
  2. id_du_site  // int(11)
  3. mot_phrases // text  
  4. nb_occurence_du_mot // int(5)


 
 le problémé c'est que j'ai l'impression que je vais avoir des millions d'enregistrement dans cette table car pour un seul site je peux avoir des centaines de mots facilement  
faut il faire plusieurs table ( en les classant par ordre alphabétique ? ) et faire une nouvelle table uniquement pour les morceaux de phrases !?
 
 
 

Code :
  1. table cache
  2. id_du_site  // int(11)
  3. cache_sans_balise // text  
  4. poids_page // int(5)un


 
est ce la méthode la plus rapide pour faire des recherches par la suite ?
avez vous des conseils ou des articles intéressant qui en parlent ?
 
Encore merci
 
N'hésitez pas a laisser tout vos commentaires

Reply

Marsh Posté le 19-05-2006 à 10:55:25   

Reply

Marsh Posté le 19-05-2006 à 11:11:21    

J'ai parlé récemment avec une personne experte en moteur de recherche et pour la partie stockage des résultats de l'indexation, il m'a dit que généralement ils n'utilisaient pas de base de données mais un système de fichiers spécifiques.
Il m'a expliqué que 90% des accès étaient en lecture et que les bases de données n'étaient ce qui étaient des plus performantes pour cela (d'où le protocole LDAP par ailleurs).
Par contre je n'ai aucune idée de ce qu'ils peuvent utiliser à la place.
 

Reply

Marsh Posté le 19-05-2006 à 12:37:46    

moonboot a écrit :

J'ai parlé récemment avec une personne experte en moteur de recherche et pour la partie stockage des résultats de l'indexation, il m'a dit que généralement ils n'utilisaient pas de base de données mais un système de fichiers spécifiques.
Il m'a expliqué que 90% des accès étaient en lecture et que les bases de données n'étaient ce qui étaient des plus performantes pour cela (d'où le protocole LDAP par ailleurs).
Par contre je n'ai aucune idée de ce qu'ils peuvent utiliser à la place.


 
je ne connais pas du tout le procédé LDAP et cela me semble un peu compliqué a mettre en oeuvre !
je pense qu'une bonne bdd mysql bien faite permettrait d'obtenir ce que je veux ( puissant mais pas une "usine a gaz" dixit LDAP )
c'est pour cette structure que je tourne vers d'eventuelle idée ...
 
Question :  
 
Pour faire des requetes il vaut mieux tout mettre dans une table ou faire plusieurs table ? une base ou plusieurs bases ??
 

Reply

Marsh Posté le 19-05-2006 à 13:29:56    

je parlais du protocole LDAP pour exemple pour la non utilisation d'une base de données dans le cas d'un ratio en lecture très élevé.
Tu n'as absolument pas besoin d'un LDAP pour ton cas.

Reply

Marsh Posté le 19-05-2006 à 14:25:50    

moonboot a écrit :

je parlais du protocole LDAP pour exemple pour la non utilisation d'une base de données dans le cas d'un ratio en lecture très élevé.
Tu n'as absolument pas besoin d'un LDAP pour ton cas.


 
 
ok désolé ;)
 
sinon pour ma question !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed