- pgPDF é uma extensão do Postgres que permite ler arquivos PDF com SQL (um wrapper do poppler)
SELECT pdf_read_file('/path/file.pdf') → text
- Forma de armazenar os dados
- O conteúdo do arquivo PDF é armazenado na tabela em formato de texto (txt) e binário (bytes)
- O
tsvector de cada PDF também é armazenado. tsvector representa documentos em um formato otimizado para busca textual
- Gerar o
tsvector tem custo alto, mas como isso só precisa ser feito uma vez, é melhor armazená-lo em uma coluna gerada (generated)
- As consultas de FTS são executadas sobre o
tsvector, não sobre a coluna txt
- Executando consultas de FTS
- FTS normalmente usa o operador
tsvector @@ tsquery
tsquery define um filtro de correspondência para o tsvector
- Também existem vários outros tipos de
tsquery: plainto_tsquery, phraseto_tsquery, websearch_to_tsquery
SELECT name FROM pdfs WHERE tsvec_en @@ to_tsquery('english', 'Postgres & Sharding');
- É possível melhorar o desempenho criando um índice GIN na coluna
tsvector
1 comentários
Nossa.....