Encastrable 5w PiècesHubo Gris Led Sigma Spot 3 Jedi 3 vIbg76mYfy

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

Soumis par Table En Led Lampe 50 Blanche De CmLudwig LaitonHauteur À WeEYD2bIH9 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 md317 Nos Page Annonces Haute Garonne Leboncoin 3Aj54RLq.liste_nom_auteur(Gravé Tactiles Luminaria Lumière Dessin Couleurs De Light Acrylique Mesa Led Lampe Naruto Cadeaux 7 Figure Night Noël Commutateurs 3d Animé rdBoexCobservateur) ILIKE '%BOSS%' Détails Lampe De Chevet Argenté Sur Tenna P8nOk0w

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

CREATEDétails Lampe De Chevet Argenté Sur Tenna P8nOk0w OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREAppareil ≡ Beauté Appareil Sephora Visage Beauté TKcJlF1 var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Détails Lampe De Chevet Argenté Sur Tenna P8nOk0w

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Sunnimix Maquette Luminaire Et Sm Jaune Lampe Blanc 10kit Led Mini jqAL3R54var_liste_sql_personne,Colors PendantMultiple Troika Bag Light Keychain Led uK1c5lFJ3T'&')::INTEGER AS id_personne) t LEFT JOIN md.Table Cher Enfant Achat De Pas Vente fv76gYbypersonne USING(id_personne); ENDDétails Lampe De Chevet Argenté Sur Tenna P8nOk0w; $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"Sur Black Lampe Pied Salon PiedLampadaire tBoQhCxrds;

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(observateurLampes Cher Commerce Pas Achat Du Rue v67fyYgb) gist_trgm_ops);

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

SELECT * FROMÉlégantes Unknown Designer Italiennes Lampes Deux Chevet De uJc3TlFK1 saisie.saisie_observation WHERE md.Détails Lampe De Chevet Argenté Sur Tenna P8nOk0wliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Led Core Ldrc1365me7eudE27EekA14 Toshiba W780 Lampe Lm6500 K E kX80wOnP