- pgPDF adalah ekstensi Postgres yang memungkinkan file PDF dibaca dengan SQL (wrapper untuk poppler)
SELECT pdf_read_file('/path/file.pdf') → text
- Cara penyimpanan data
- Isi file PDF disimpan ke tabel dalam bentuk teks (
txt) dan biner (bytes)
tsvector untuk setiap PDF juga disimpan. tsvector merepresentasikan dokumen dalam bentuk yang dioptimalkan untuk pencarian teks
- Pembuatan
tsvector memerlukan biaya besar, tetapi karena hanya dilakukan sekali, sebaiknya disimpan dalam kolom generated
- Kueri FTS dijalankan terhadap
tsvector, bukan kolom txt
- Menjalankan kueri FTS
- FTS umumnya menggunakan operator
tsvector @@ tsquery
tsquery mendefinisikan filter pencocokan untuk tsvector
- Selain itu ada berbagai jenis
tsquery lain: plainto_tsquery, phraseto_tsquery, websearch_to_tsquery
SELECT name FROM pdfs WHERE tsvec_en @@ to_tsquery('english', 'Postgres & Sharding');
- Performa dapat ditingkatkan dengan membuat indeks GIN pada kolom
tsvector
1 komentar
Oh.....