par
Ryle » 01 nov. 2008, 15:06
Ca marche effectivement très bien avec un like pour faire des recherches, à toi également de constituer la bonne requête pour, en fonction des critères de recherches, retourner la chaine exacte (un simple like), l'ensemble des mots qu'elle contient (plein de like avec des AND), ou n'importe lequel des mots (plein de like avec des OR).
Ca reste un petit moteur de recherche simple et efficace. Maintenant, quand la volumétrie devient importante, faut se tourner vers d'autres façon de faire pour gagner en performance.
Un exemple parmis d'autre : envisager une table de mots clés (id, mot clé) alimentée automatiquement par tous les mots de plus de 2 ou 3 lettres (en filtrant articles, déterminants, etc.) et associer à chaque texte les id des mots clés correspondant dans une table de liaison. Ta recherche de mots se fait alors uniquement avec des "=" sur cette table et non plus avec des like, puis les id correspondant en poche, tu retrouves rapidement les textes qui les contiennet grace à ta seconde table. Les index et les "=" te permettront d'aller beaucoup plus vite sur une certaine volumétrie, que de devoir faire un fullscan de ta table pour vérifier enregistrement par enregistrement qu'il y a une correspondance avec ton ou tes like

Ca marche effectivement très bien avec un like pour faire des recherches, à toi également de constituer la bonne requête pour, en fonction des critères de recherches, retourner la chaine exacte (un simple like), l'ensemble des mots qu'elle contient (plein de like avec des AND), ou n'importe lequel des mots (plein de like avec des OR).
Ca reste un petit moteur de recherche simple et efficace. Maintenant, quand la volumétrie devient importante, faut se tourner vers d'autres façon de faire pour gagner en performance.
Un exemple parmis d'autre : envisager une table de mots clés (id, mot clé) alimentée automatiquement par tous les mots de plus de 2 ou 3 lettres (en filtrant articles, déterminants, etc.) et associer à chaque texte les id des mots clés correspondant dans une table de liaison. Ta recherche de mots se fait alors uniquement avec des "=" sur cette table et non plus avec des like, puis les id correspondant en poche, tu retrouves rapidement les textes qui les contiennet grace à ta seconde table. Les index et les "=" te permettront d'aller beaucoup plus vite sur une certaine volumétrie, que de devoir faire un fullscan de ta table pour vérifier enregistrement par enregistrement qu'il y a une correspondance avec ton ou tes like :)