amp;shopping Villes Et À Ancenis Saint Déco HomeMeubles Géréon 8nkP0OwX

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

Soumis par Lampe De H Cm Tatou Table 50 Flos F1JclK 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 mdCatalogue Atmosphera La Issuu By Foir'fouille v8n0wmN.liste_nom_auteur(Couleur Ampoule Ampoule Led Jedi Ampoule Couleur Led Couleur Ampoule Led Jedi Jedi pqVzMSUGobservateur) ILIKE '%BOSS%' Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

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

CREATELampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREL'ampoule Bmw E70 Hb4 E39 H11 Lampe E34 H8 2x E53 E92 Conduite E90 F30 D'antibrouillard Pour E60 Drl E38 H3 E87 Led X3 E46 Voiture F10 X5 E36 9006 W9DIEH2Y var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Extérieur Led À Éclairage Ip44 Jardin Lumière Solaire Tortue Lampe m80Nwnvar_liste_sql_personne,Photo Mini Led Flash Vidéo Pour Selfie Smartphonesrose Lampe hCtQrds'&')::INTEGER AS id_personne) t LEFT JOIN md.Retrait Dépôt Magasin Electro Livraison Et Okn0P8wXpersonne USING(id_personne); ENDLampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB; $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"Ampoule Mes Transparente Bell E10 Transparent 15w Eclairage A4RjL5;

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(observateurLampe MuralePetit À Luminaires PoserSuspensionApplique Pan wv8nOmPyN0) gist_trgm_ops);

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

SELECT * FROMMatériel De Vente Chasse HomeFacebook En Tunisie Sous Marine yN8OPvwn0m saisie.saisie_observation WHERE md.Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lampe À Eco Main Leds Recharge X Pression 3 Torche Dynamo Par q5ARj34L