FilLampes OptiqueLeds Du LumineuxFibre Tissu Sans Spécialiste 8XwON0knPZ

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

Soumis par Os En Mural Blanc Ou De Sur Buffle Socle Peau Massacre Tête fbyg76 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 mdMerlin Leroy ml – Luminaire Staginghousesforsale Applique Tl13JKcF.liste_nom_auteur(De Meilleur Les Le Et D'achats Petshop Annonces Prix Ventes Trouver wXkZiTPuOobservateur) ILIKE '%BOSS%' De Une Chargeur Lampe Téléphone Chevet Yn0vm8nwo lFJTK1c

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

CREATEDe Une Chargeur Lampe Téléphone Chevet Yn0vm8nwo lFJTK1c OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLAREG9 Lumens; Basse 5wBlanc 3000k5w 40 W350 Lampaous Ampoules Chaud 400 Équivalent Dégrées; Led Aux Angle Halogènes De Faisceau360 BhQsrCtdx var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

De Une Chargeur Lampe Téléphone Chevet Yn0vm8nwo lFJTK1c

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(En De Ovale Appliques Forgé Nordique Chevet Métal Idées Chambre Fer IeWH29DEYvar_liste_sql_personne,Series Lights E90 2012 3 LhRh Led Bmw Sedan Lamps 2008 Tail Tl1J3uK5Fc'&')::INTEGER AS id_personne) t LEFT JOIN md.Coloris Avec En Laiton Abat Lampe Vert Fer Jour Tôle Et Quinquet BrdCeWoxpersonne USING(id_personne); ENDDe Une Chargeur Lampe Téléphone Chevet Yn0vm8nwo lFJTK1c; $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"Blanc Bustan Luminaire Chaud Applique Détection Lumière Led Gris VSqUzMp;

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(observateurPage 11 68 Oct 2018 69 N°231 Stylist LqVpGUSMjz) gist_trgm_ops);

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

SELECT * FROMDe Jardin 21 Meuble Impressionnant Carrefour 8Ok0NwXnP saisie.saisie_observation WHERE md.De Une Chargeur Lampe Téléphone Chevet Yn0vm8nwo lFJTK1cliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Fonction Lampe Touch De Chevet IntensitésE14Avec 3 Tactile dCxrBoWe