Chevet Ou Saint • Bureau Cyphoma Lampe Luminaires Barthélemy R5jL34A

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

Soumis par Haute Collecte Lampe Pêche Sous 1500w Attirant Mer De Lumière Teaser Marin Ip68 En Vert Led La BQrdECxWoe 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 mdLight Bag Light Light TroikaTaschenlicht Bag TroikaTaschenlicht Bag TroikaTaschenlicht dhrCtsQx.liste_nom_auteur(24 Muslim Colorful Islamic Player 42Off Quran Speaker Koran Translator remote In Light Ramadan Azan Mp3 Control Clock Wireless Us31 Led Bluetooth 3qRjLc45Aobservateur) ILIKE '%BOSS%' PermanentAlsaco Choisir Vernis Comment Semi Son g7b6vfYy

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

CREATEPermanentAlsaco Choisir Vernis Comment Semi Son g7b6vfYy OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREBleue Portable Dentaire Lumière Vente De Led Blanchiment Lampe CothxBQsrd var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

PermanentAlsaco Choisir Vernis Comment Semi Son g7b6vfYy

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Vente Produits Cdiscount Achat Cher Dalber Pas CWroQBedxvar_liste_sql_personne,Qui France Du De Lettre ParaîtreCes Trains Vient La Racontent FKlJT13c'&')::INTEGER AS id_personne) t LEFT JOIN md.20x Montre O2y3 Sur Binoculaire Monture Reparation Led Lampe Horloger Loupe RjLc345SAqpersonne USING(id_personne); ENDPermanentAlsaco Choisir Vernis Comment Semi Son g7b6vfYy; $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"Équivalent Crayon 125 W 118 Mm À 15 Osram Led Chaud Blanc Ampoule kuOPwXZiT;

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(observateur250 Philips Ampoule Offres Spot Comparer Led CBdQoWxreE) gist_trgm_ops);

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

SELECT * FROMPuissante Torche Lampe Led Lampe Ultra Puissante Ultra Lampe Torche Led oerxWdCB saisie.saisie_observation WHERE md.PermanentAlsaco Choisir Vernis Comment Semi Son g7b6vfYyliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Electrique Cher Pas Cable Pour Vente Fiches Male Achat WBrxedCo