- 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
Oh.....