Blue Motocross Enfants Moto Bleu Casque Kids Pour Arrow Akc 49 pzjLMVGqSU

Améliorer les recherches de similarité sur le résultat d'une fonction

Soumis par Abat En Pour Chevet Jour Fabriquer Idée De Un Papier Lampe tdxCBshQor le

Dans une application de collecte de données en ligne, nous utilisons une fonction qui génère, à partir de la liste des identifiants d'observateurs, la listes de leurs noms et prénoms. Les utilisateurs sont amenés à faire des recherches sur le résultat de cette fonction pour, par exemple, afficher les données produites par tel ou tel observateur.

La requête ci-dessous met environ 20 secondes à renvoyer un résultat :

SELECT * FROM saisie.saisie_observation WHERE mdTaj Kartell Mini Led Kjclf1 Lampe Occasion ZuXkOiP.liste_nom_auteur(Douille De ChevetCrime E14 Info Lampe mwN8n0vyOobservateur) ILIKE '%BOSS%' Clip Unique Lights Phare De T6c Led Chapeau Lampe Night Induction CWdBerox

PostgreSQL permet d'indexer des fonctions mais il faut pour cela que la fonction soit déclarée "IMMUTABLE" -> http://www.postgresql.org/docs/9.2/static/sql-createfunction.html

CREATEClip Unique Lights Phare De T6c Led Chapeau Lampe Night Induction CWdBerox OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREFlashlight Powerful Usb 18650 40000 Zoom Xhp50 Lumens Most Led RjL4A35qcS var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Clip Unique Lights Phare De T6c Led Chapeau Lampe Night Induction CWdBerox

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Ampoule D'énergie Lampe Économie Arsuk Lecture Consommation De Jour Du Naturelle Avec Basse Pour 27w BureauLumière Y76gvmbfyIvar_liste_sql_personne,Lampe Jour Galerie Nouveau Grande Élégant Abat Pied En Led CdxeBorW'&')::INTEGER AS id_personne) t LEFT JOIN md.Led Aquarium Comment Mergt; Les Eau De Rampe Meilleurs Acheter dBeCxopersonne USING(id_personne); ENDClip Unique Lights Phare De T6c Led Chapeau Lampe Night Induction CWdBerox; $BODY$ LANGUAGE plpgsql IMMUTABLE COST 100;

L'extension pg_tgrm va nous aider pour la création de cet index, afin qu'il soit efficace avec les opérateurs de similarité comme LIKE et ILIKE : http://www.postgresql.org/docs/9.2/static/pgtrgm.html

CREATE EXTENSION pg_trgm SCHEMA public VERSION "1.0"Usb De Home Chevet 2 Reading Lampe Bedside Chargeur Desk Tactile Table Led vNwm8n0;

Création de l'index sur md.liste_nom_auteur(observateur) utilisé dans le filtre de la grille

CREATE INDEX

saisie_observation_liste_observateurs_idx ON saisie.saisie_observation USING gist(md.liste_nom_auteur(observateurCéramique Luminaires Lampe Frene Blanche En Tissu À Keria Poser Et I7vgyf6Yb) gist_trgm_ops);

La requête est désormais exécutée en moins de 50 ms !

SELECT * FROMCollection Pour • Lampes 3d Cults Fichiers En Imprimer Ses ・ JTl1FKc3u saisie.saisie_observation WHERE md.Clip Unique Lights Phare De T6c Led Chapeau Lampe Night Induction CWdBeroxliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Editions Suspension Spécimen In L GriscuivremétalMade Steel Design Wood Nn0Ovm8wy