[Linux] moteur de recherche
Jonathan ROTH
jonathan@::1
Mer 14 Nov 14:05:45 CET 2007
daniels a écrit :
> Bonjour,
>
>
> Je réaliser un moteur de recherche sur une base de données
> d'entreprises de 6 000 000 d'entrées 9 tables.
>
> J'ai crée des index fultext pour 6 tables, lors d'une recherche sur 1
> mot j'ai un résultat de recherche d'environ 0,11 secondes par contre
> si je passe à 2 mots le temps de recherche passent à plus de 30.0
> secondes un temps nom acceptable pour une recherche.
>
> Enseigne,adresse,cp,ville,activité,nom
>
>
> Avez vous une solution, même si je doit changer de system.
1. MySQL (je suppose) réplique toute la base de données en mémoire pour
chaque client connecté, à 100 octets par entrée, ta base fait 600Mo,
vérifier que la mémoire vive du système est suffisante.
2. Les jonctions de tables sont lourdes, surtout sur des grosses BdD, et
encore plus si c'est mal fait...
3. Lorsqu'on fait une sélection, il faut prendre l'habitude d'ordonner
les champs, en premier ceux qui donneront le moins de résultats.
4. Pour rechercher 2 mots, tu peux soit utiliser le SGBD (SELECT WHERE a
= b AND b=d), ou soit chercher 1 mot, puis chercher 1 mot dans les
résultats. La deuxieme solution est plus lourde et moins propre, mais
sur des bases de données énormes celà peut être une alternative acceptable.
Plus d'informations sur la liste de diffusion linux