- pgPDF es una extensión de Postgres que permite leer archivos PDF con SQL (un wrapper de poppler)
SELECT pdf_read_file('/path/file.pdf') → text
- Forma de almacenar los datos
- El contenido del archivo PDF se guarda en la tabla tanto como texto (
txt) como en binario (bytes)
- También se guarda el
tsvector de cada PDF. tsvector representa un documento en una forma optimizada para la búsqueda de texto
- Generar un
tsvector es costoso, pero como solo se hace una vez, conviene guardarlo en una columna generada
- Las consultas FTS se ejecutan sobre
tsvector, no sobre la columna txt
- Ejecutar consultas FTS
- FTS generalmente usa el operador
tsvector @@ tsquery
tsquery define el filtro de coincidencia para tsvector
- Además, hay varios tipos de
tsquery: plainto_tsquery, phraseto_tsquery, websearch_to_tsquery
SELECT name FROM pdfs WHERE tsvec_en @@ to_tsquery('english', 'Postgres & Sharding');
- Se puede mejorar el rendimiento creando un índice GIN sobre la columna
tsvector
1 comentarios
Oh.....