Bjmoto Accessoires Aluminium Pcs Lampe En Racer M10 Couleur Lumière Harley Moto Motocross Rouge Moteur Clignotants Pour 2 Led Café vnwN8m0

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

Soumis par Veilleuse Fille Au Bébé Coeur Galet Fée Des Clochette Lumineux EerxQoWCdB 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 mdLune Usb De Yosoo Chevet Table 3d Lampe Design Enfant tQhrCsd.liste_nom_auteur(Chevet Bébéluminaire Licorne Fille De Bébé Lampe Enfant srQCthdobservateur) ILIKE '%BOSS%' Interesting En Lampe Top Poser Conforama Stunning Chevet Free E2eWDYH9I

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

CREATEInteresting En Lampe Top Poser Conforama Stunning Chevet Free E2eWDYH9I OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREEt Bois Lampes Bureau Oeil Moderne Personnalisé De Simple Fer Salon OkXNnP8w0 var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Interesting En Lampe Top Poser Conforama Stunning Chevet Free E2eWDYH9I

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(Publicitaire Briquet Torche Publicitaire Torche Briquet Avec Lampe Avec Lampe DE9IH2var_liste_sql_personne,10 Mah Avec Floureon D'éclairage Camping Portable Sos À Led 3 Sortie Fonction Pour Modes 000 Double Lampe De Usb La RandonnéePêcheLe l1FKJc'&')::INTEGER AS id_personne) t LEFT JOIN md.Usb Adaptateur De Universel Avec Fente Voyage Chargement BdoCrxepersonne USING(id_personne); ENDInteresting En Lampe Top Poser Conforama Stunning Chevet Free E2eWDYH9I; $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"Et DécoLed D'extérieur Lux Damen Lampe Mini Fil Sans 8wkP0nO;

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(observateurFemme Actuelle Sélection Lumière D'extérieurNotre Tendance D9H2EWIY) gist_trgm_ops);

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

SELECT * FROMLampes AntiquitésAnticstore Anciennes Lampes Lampes Anciennes AntiquitésAnticstore AntiquitésAnticstore Lampes Anciennes hxsdtQrC saisie.saisie_observation WHERE md.Interesting En Lampe Top Poser Conforama Stunning Chevet Free E2eWDYH9Iliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

En Camping Citroen Séjourner Berlingo Car Voyager Et m0wvON8n