18 points par xguru 2024-11-01 | 1 commentaires | Partager sur WhatsApp
  • pgPDF est une extension Postgres qui permet de lire des fichiers PDF en SQL (wrapper de poppler)
    SELECT pdf_read_file('/path/file.pdf') → text
  • Méthode de stockage des données
    • Le contenu des fichiers PDF est stocké dans une table sous forme de texte (txt) et de binaire (bytes)
    • Le tsvector de chaque PDF est également stocké. tsvector représente un document sous une forme optimisée pour la recherche textuelle
    • La génération d’un tsvector est coûteuse, mais comme elle n’est effectuée qu’une seule fois, il est préférable de le stocker dans une colonne générée
    • Les requêtes FTS sont exécutées sur le tsvector, et non sur la colonne txt
  • Exécuter des requêtes FTS
    • FTS utilise généralement l’opérateur tsvector @@ tsquery
    • tsquery définit un filtre de correspondance appliqué à tsvector
    • Il existe aussi plusieurs autres types de tsquery : plainto_tsquery, phraseto_tsquery, websearch_to_tsquery
    • SELECT name FROM pdfs WHERE tsvec_en @@ to_tsquery('english', 'Postgres & Sharding');
  • Il est possible d’améliorer les performances en créant un index GIN sur la colonne tsvector

1 commentaires

 
cosine20 2024-11-01

Oh.....