18 puntos por xguru 2024-11-01 | 1 comentarios | Compartir por WhatsApp
  • 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

 
cosine20 2024-11-01

Oh.....