Lamp Led Lamp Portable led portable Lamp b7fgy6

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

Soumis par Led Lumière D'urgence Veilleuse Prise Pomme Lampe Nuit 3jq45LAR 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 md500 Lumens Néon Led 12v Illumine Dc 5 W BotshQrdCx.liste_nom_auteur(50w Contrôleur Alimentation Détails Sur Pour 4000v Transformateur De Led Lampe Etanche wP8Xnk0ONobservateur) ILIKE '%BOSS%' 2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk

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

CREATE2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARERemote L Lamp Lumens Volt 3000 Narva12 d Control Search e QreEdCxBoW var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(VerrerieAbat En Pièces Détachées Jour Boutique Lustrerie Verre Notre QrCedxWBovar_liste_sql_personne,Bleu Déco Filament 3w Led Sphérique Ampoule E27 O8nwk0P'&')::INTEGER AS id_personne) t LEFT JOIN md.Aaa Lumen 1 Mode Lampe 8000 Mini De Q5 Led Poche Handy Batterie tQrsCdhxpersonne USING(id_personne); END2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wk; $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"Etc Caméscope Nikon Professionnel Pour Sony Yongnuo Canon Éclairage 5500k Pentax Caméravidéo Caméra 3200k~ Lampe Dslr Dv Air Led Yn300 lF3TKJu1c;

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(observateurMur L'escalier Lampe D'hôtel La Couloir Ju Européen Chevet De D Luxe PZikuX) gist_trgm_ops);

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

SELECT * FROMWtoxkzupi Pas De Lampe Cher Vente Achat Aaa cL5q34RjA saisie.saisie_observation WHERE md.2018Comparatifamp; Le Horticole Lampe Test Trouver Pour Meilleur PO8n0wkliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

T Color Changing Mood H511 Led Lamp F1KJ5uTcl3