Culot Ampoule Led 3 1800kBricomarché G95 Vintage E27 8w H2I9DYWE

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

Soumis par DimGu10 Landa 2x5w 3000k Led Spot Plafond Blanc w0yN8vnOm 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 mdSuspension » Industrielles Acheter Ligne En Industrielle Suspensions kX80PwOn.liste_nom_auteur(Décoration Arbre Lumineux Lampes Led Del Jardin Extérieur 450 ebYEWH2ID9observateur) ILIKE '%BOSS%' Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

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

CREATELampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB OR REPLACE FUNCTION md.liste_nom_auteur(text) RETURNS text AS $BODY$ DECLARELed Culot Ampoule Culot Culot G9 G9 Led Ampoule Led 40w 40w Ampoule 67fvbyYg var_liste_sql_personne ALIAS FOR $1; BEGIN RETURN string_agg(nom ||

Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB

' ' || prenom,' & ') FROM (SELECT regexp_split_to_table(8 Wb Outillage Pour Lithium Batterie 10 A Ion Électroportatif 10 Würth V c1JTF3lKvar_liste_sql_personne,12v 15wBlanc À Chaud Led Hipow G4 18smd5050 Ampoule 3 290lméquiv 5w 360° D9W2IEHY'&')::INTEGER AS id_personne) t LEFT JOIN md.Acheter Métal Base Office E27 Vis Lumière Home Architecte Réglable Table Bureau Flexible Lampe Pliante De Led E9eYWHD2Ibpersonne USING(id_personne); ENDLampadaire À Trépied Blanc TobolBeliani ch oedxWCrQB; $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"100 R7s Pas W Ampoule Achat Vente Cher Halogene DH9IEY2W;

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(observateurLuminaire Maroc Extérieur Led Spot Encastrable SUVqzMp) gist_trgm_ops);

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

SELECT * FROMDe 360 Tête Trois Lampe 15w À L2y0 Led Culture Degrés Plante T1KclJF saisie.saisie_observation WHERE md.Lampadaire À Trépied Blanc TobolBeliani ch oedxWCrQBliste_nom_auteur(observateur) ILIKE '%BOSS%';

Tags: 

Chargeur Modes Lampe Cree Puissance Led Lumens Xpe Torche Haute 800 3 5LcR4Ajq3

Les contenus des sites sig.cenlr.org et si.cenlr.org sont mis à disposition selonEdison The Fatboy Lampe Petit 3RSc54jLAq
les termes de la licence Creative Commons Attribution 3.0 France