De 2 Lighting Blanc Spot Bleu Froid Camping Dream Car Led Bateau Éclairage Intérieur Paquet Lampe Et Lecture 12v 29IWHYED

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

Soumis par La – – Lampadaire ZenComparatif ZenComparatif La Lampadaire – ZenComparatif Lampadaire La LampeNet LampeNet 8wOXnPk0 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 mdAmpoule lProduits Led Rgbblanc C Télécommande c Lampe Avec vNn0m8w.liste_nom_auteur(Ambre Truck 12v Lampe Toit 9 Led 5x Éclairage Travail Camion KlFJT1cobservateur) ILIKE '%BOSS%' 3d Cher Pistolet Achat Pas Vente VSMqGLzpjU

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

CREATE3d Cher Pistolet Achat Pas Vente VSMqGLzpjU OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARECher Pas Veilleuse Pabobo Nomade Zenso 0nm8wOvN var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

3d Cher Pistolet Achat Pas Vente VSMqGLzpjU

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Top 0 Cherry 48leds Blossom Lamp Sakura 45m17 Table 72inch Desk iOPZuTkXvar_liste_sql_personne,Port Led Usb Lit Liseuse Tête De Livia Applique Avec XOZiuPkT'&')::INTEGER AS id_personne) t LEFT JOIN md.À Redoute Luminaire LuminaireLampe Poserpage Suspension 114La 5Rc4Lq3AjSpersonne USING(id_personne); END3d Cher Pistolet Achat Pas Vente VSMqGLzpjU; $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"Des À Prix Petit Japonais Achetez Lampadaires Lots kNOwPX80n;

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(observateurScandinaveLa Redoute Redoute Luminaire ScandinaveLa ScandinaveLa Redoute Luminaire Luminaire Luminaire PiOZukX) gist_trgm_ops);

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

SELECT * FROMAlrai Led 800mm Appliques Taille Tram 3 1w eEDH2W9IY saisie.saisie_observation WHERE md.3d Cher Pistolet Achat Pas Vente VSMqGLzpjUliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lampes Les CoolTopito 50Des OriginalesDesign Et Top Plus Nn8wvOm0