Le Forum Non Officiel de la DEDIBOX
Vous n'êtes pas identifié.
Je suis presque a 500 000 pages indexées, plus j'en indexe, plus le moteur est lent. (7 Go de données)
La seule astuce d'optimisation que j'ai pu trouver c'est de garder uniquement les indexes des mots clés pour les pages les plus pertinentes. Par exemple si je cherche "toto", je ne vais afficher qu'une seule page de chaque site contenant le terme "toto" (la page la plus pertinente), si le mot "toto" existe dans d'autres pages non pertinentes du meme site je les supprime de mon index de recherche (id_mot, id_url, ....)
Si quelqu'un a une astuce a donner, je suis preneur ![]()
Hors ligne
Ca m'a permit d'eliminer 85% des données de mon index de recherche. Au lieu d'avoir une bonne centaine de millions d'enregistrements dans ma table "index de recherche", il n'en resque plus que quelques millions... ca reste quand meme trop; la suite du nettoyage continue.
Hors ligne
Tu peut donner un lien vers ton moteur de recherche j'aimerai bien, le voir ![]()
Hors ligne
Dernier message de Jalal sur la page 1
Hors ligne
Enfin, j'avais l'impression de parler tout seul ![]()
J'ai pas finit avec les ameliorations, j'ai meme reussi a soumettre le moteur dans Dmoz.org, il a été inclut dans moins de 24h, super non ? avec tous les sites qui reproduisent l'annuaire Dmoz je risque de voir mon pagerank monter en fleche ![]()
Le seul probleme que je rencontre en ce moment c'est que pas mal de texte est ecrit en caracteres non reconnus du genre &#xxxx; et la table de traduction des caracteres de ce type ne reconnait que les 256 premier caracteres (get_html_translation_table), malheureusement pour le reste je ne peu pas faire grand chose a apart trouver tous les caracteres et créer ma probre table...
Hors ligne
J'y comprend rien, mais le design est simple et beau ![]()
Hors ligne
Une petite traduction approximative ![]()
http://translate.google.com/translate?h … 26pwst%3D1
Hors ligne
http://sphinxsearch.com/
Je discutais récemment avec un pote, qui est le dev de pcinpact.com. Il commence à avoir des problèmes de perf avec le fulltext de mysql vu qu'il commence à avoir beaucoup de données. Il a trouvé ce soft qui semble assez prométeur.
J'ai pas investigué la question et je sais pas s'il a déjà pu tester un peu, mais les bench annoncés semblent intéressants. Y a apparemment une interface PHP pour l'interrogation de l'index.
Bon, ca te changerait juste un peu beaucoup de choses dans ton soft, mais je me suis dit que ca pouvait peut-être t'intéresser ! :happy:
Hors ligne
Merci pour les infos, je sais pas comment ils font pour inventer des programmes qui indexent 10 Mo de données par seconde... ![]()
Hors ligne
Un moteur de recherche arabe (que je ne vais pas citer) vient d'etre lancé a Dubai.
Le projet leur a couté plusieurs millions de dollars, et fonctionne avec une structure de plusieurs centaines de serveurs... selon eux.
Je n'ai aucune chance de m'imposer, ils ont des sous (des centaines de serveurs, campagnes publicitaires) mais je vais essayer quand meme ![]()
Hors ligne
Faut te faire embaucher ! ![]()
Hors ligne
JalaL a écrit:
Un moteur de recherche arabe (que je ne vais pas citer) vient d'etre lancé a Dubai.
Le projet leur a couté plusieurs millions de dollars, et fonctionne avec une structure de plusieurs centaines de serveurs... selon eux.
Je n'ai aucune chance de m'imposer, ils ont des sous (des centaines de serveurs, campagnes publicitaires) mais je vais essayer quand meme
quel est ce moteur de recherche ?
Ca finit pas avec les optimisations...
Je viens d'avoir l'idée de faire deux indexes de recherche avec la meme structure; un pour les mots latins + chiffres, et un autre pour les mots arabes seulement.
Ma table "mots" contiendra toujours tous les mots qui existent qu'ils soient en arabe ou en latin.
Les mots arabes sont 2 fois plus frequents que les mots latins, donc comparé à la rapidité de cherche actuelle je vais gagner :
33% de rapidité en cas de recherce avec des mots arabes seulement (ce qui est le cas le plus probable).
66% dans les autres cas (mots latins ou chiffres).
En cas de recherche avec des mots arabes+latins+chiffres en meme temps, il doit y avoir un moyen pour gerer ca dans la requette sql.
Hors ligne
JalaL a écrit:
En cas de recherche avec des mots arabes+latins+chiffres en meme temps, il doit y avoir un moyen pour gerer ca dans la requette sql.
Pour ceux que ca interesse le suivi de ce projet, il y un type de tables Mysql : MERGE (MRG_MyISAM) qui permet de relier deux tables de meme structure... :+
Hors ligne
Un "union" à la volée va pas ?
Hors ligne
ouai moi j'ai une spécial request :
le premier qui fait un moteur de recherche dédié exclusivement a l'audio
il a tout gagné. Y'a des centaines de To de musique free sur le web et aucun
moteur spécialisé.... y'a bien la vidéo, mais rien pour l'audio.
quand tu vois la production des netlabels, y'a vraiment de quoi faire.
voila dernière idée de l'année 2006...apres je sombre dans le coma éthilo-champenois.
Hors ligne
Calimero a écrit:
Un "union" à la volée va pas ?
J'ai pas testé, mais ca peux etre interessant si c'est plus rapide
J'ai commencé a faire de la recherche d'images, et c'est pas encore gagné. Je vais appliquer le meme principe pour le reste des fichiers (video, audio...)... le principe est "simple" exrtaire le texte dans les champs alt et title des liens ou images avec le texte entre <a></a>, extraire le texte autour du lien qui mene vers la ressource et le tour est joué. Je ne sais pas si c'est aussi simple que ca (d'où les "..."). Par contre ca necessite enormement de ressources CPU.
Il faudra prevoir un truc pour la correction d'orthographe, synonymes... et surtout un bon index de recherche. Par exemple faire une table index pour chaque lettre de l'alphabet arabe et latin, plus l'index est petit, plus la recherche sera rapide.
Hors ligne
JalaL a écrit:
Je vais appliquer le meme principe pour le reste des fichiers (video, audio...)...
et les <rdf> pour le contenu creative commons :happy:
(comment je tape l'incruste)
Hors ligne
JalaL a écrit:
Calimero a écrit:
Un "union" à la volée va pas ?
J'ai pas testé, mais ca peux etre interessant si c'est plus rapide
Je connais pas trop MERGE, donc je sais pas trop comment ca perform. C'était plutôt une suggestion en passant. :+
Par contre, j'en déduis que tu n'utilises pas/plus les fonctions FULLTEXT, vu que c'est pas supporté en MERGE, apparemment.
Hors ligne
FULLTEXT devient trop lent a partir d'une certaine quantité de données, en plus ca ne m'aide pas dans le calcul de pertinence. J'ai créé une table d'index inversé avec plusieures options pour chaque mot. Je prend en compte l'existance du mot dans le titre, l'host, le chemin... et pour eviter le spam par mots clés dans le titre/host/path (ce qui augmente la pertinence) je n'indexe que les mots qui existent dans le corps de l'html, ex: si un mot existe dans le titre/host/path mais pas dans le body => je ne l'indexe pas pour eviter le spam. Je ne sais pas si peux avoir une telle liberté avec FULLTEXT
Hors ligne
@ Jalal : ton projet m'intéresse, si tu as du temps et que tu passes par la, écris moi !
je te laisse un email antispamming : b7f5cvpfkixw1q1@jetable.org
@++
JalaL a écrit:
FULLTEXT devient trop lent a partir d'une certaine quantité de données, en plus ca ne m'aide pas dans le calcul de pertinence. J'ai créé une table d'index inversé avec plusieures options pour chaque mot. Je prend en compte l'existance du mot dans le titre, l'host, le chemin... et pour eviter le spam par mots clés dans le titre/host/path (ce qui augmente la pertinence) je n'indexe que les mots qui existent dans le corps de l'html, ex: si un mot existe dans le titre/host/path mais pas dans le body => je ne l'indexe pas pour eviter le spam. Je ne sais pas si peux avoir une telle liberté avec FULLTEXT
C'est a dire t'en est ou avec ta quantité de donnée parce que le fulltext peut supporter d'énorme table de plusieurs centaines de mega sans probleme, au dessus il faut compilé mysql pour qu'il accepte +. J'ai eu le meme probleme et tu peux monter à 1 go par table sans probleme ( théoriquement jusqua 2go mais bon faut y aller pour avoir des tables de 2go ), apres jai pas tester sur dedibox, p-e que le HD va pas assez vite.
Hors ligne