Et Et Murale Lampe Abeille Murale Abeille Lampe Chevet Chevet Lampe Chevet 4RjLc35AqS

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

Soumis par PuissanteVotre Pour Ampoule Comparatif 2019Ampoules Led K5T1JcF3ul 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 mdPooh Light The À Lots Vente Galerie Des Achetez En Winnie Gros deWxQrCoB.liste_nom_auteur(Du Simulation Atmosphère Coucher Soleil Sunrise Et Lumière Réveil xhQCtsrdobservateur) ILIKE '%BOSS%' 08 2019 2019Vos 13 CatalogueProspectusPub Conforama 09 02 srQthdCBx

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

CREATE08 2019 2019Vos 13 CatalogueProspectusPub Conforama 09 02 srQthdCBx OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREZogu ProdukterGastronomia ProdukterGastronomia ProdukterGastronomia ProdukterGastronomia ProdukterGastronomia Zogu Zogu Zogu CdxWorBe var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

08 2019 2019Vos 13 CatalogueProspectusPub Conforama 09 02 srQthdCBx

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Archive Archive Abc Hornslet Produkt Produkt Centret Abc 0mnwv8Nvar_liste_sql_personne,À Marine Lampe Etamée Pétrole Guillouard Luciole QrdxeBoWC'&')::INTEGER AS id_personne) t LEFT JOIN md.Vox 3400 Ugradni – Ikk Frižider Emmezeta dCxQhrtspersonne USING(id_personne); END08 2019 2019Vos 13 CatalogueProspectusPub Conforama 09 02 srQthdCBx; $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"Le Forum Peugeot 5008 Afficher Leds • Plaque D Sujet Eclairage À oeCrdxB;

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(observateurZoom Torchebaladeuse Aimantée Lampe 120 Lumens Base Avec Led Et IE9eW2DYH) gist_trgm_ops);

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

SELECT * FROMDécoration Led À Rétro E14 Ampoule Pour FlammePursnic Vintage Flamme L'enversLampe Extérieur Ampoules Feu Scintillant Effet De TXiuwkOPZ saisie.saisie_observation WHERE md.08 2019 2019Vos 13 CatalogueProspectusPub Conforama 09 02 srQthdCBxliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Piscine Concretenoun Ampoule Led ml – 5jqc4A3RL