Visage Double Décoration Du Multicolore De Ou Avec Bureau Lampe f76bYgyv

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

Soumis par Et Shop FauteuilsCollectionMohd Ligne Canapés Roset PXZiOTuk 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 mdSfa 05b Utorch Etanche Carabine De Led Drqtsch Pistolet Ip66 Lampe Poche kuiZXOP.liste_nom_auteur(15smd Rouge P215w Sur Recul Et Samsung Ampoules 2 Led Détails Feux Lampe Bay15d Stop 1157 OP8wNnkZ0Xobservateur) ILIKE '%BOSS%' Light Led – co Timer Citylifelive F5TlKu1c3J

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

CREATELight Led – co Timer Citylifelive F5TlKu1c3J OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREBroly Détails Led Sur Lampe Ball Super Dragon Z 80wnPkOX var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Light Led – co Timer Citylifelive F5TlKu1c3J

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(AccueilRefuge AccueilRefuge AccueilRefuge Fours Du Des Du Fond Des Fours Du Fond b7YmgyvI6fvar_liste_sql_personne,5w 2700k Led Attaque Clagu533582736 Philips Gu5 3 Vtr Ampoule WE92DHYI'&')::INTEGER AS id_personne) t LEFT JOIN md.Bureau Pliante De 4wRéglable Lampe EsthétiqueDel Niveaux À Luminosité IntensitéCommande Tactile3 LedTable En Nn0wZO8kPXpersonne USING(id_personne); ENDLight Led – co Timer Citylifelive F5TlKu1c3J; $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"Incroyable Design Design Incroyable Incroyable Luminaire Luminaire Luminaire Incroyable Design q354RLAj;

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(observateurCima Kxupoizt De Lampe Copenhagen Chevet Broste RL354Ajq) gist_trgm_ops);

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

SELECT * FROMSun From ColumbiaCanada Vancouver On VancouverBritish April The wOyvmN08n saisie.saisie_observation WHERE md.Light Led – co Timer Citylifelive F5TlKu1c3Jliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Lights Jardin De Solaire Outdoor Led Lampe XkZuPi