- pgPDF là một tiện ích mở rộng Postgres cho phép đọc tệp PDF bằng SQL (wrapper của poppler)
SELECT pdf_read_file('/path/file.pdf') → text
- Cách lưu trữ dữ liệu
- Nội dung tệp PDF được lưu trong bảng dưới dạng văn bản (txt) và nhị phân (bytes)
- Cũng lưu
tsvector của từng PDF. tsvector biểu diễn tài liệu ở dạng được tối ưu cho tìm kiếm văn bản
- Việc tạo
tsvector có chi phí cao, nhưng vì chỉ cần thực hiện một lần nên tốt nhất là lưu vào cột sinh sẵn (generated)
- Truy vấn FTS được thực hiện trên
tsvector, không phải trên cột txt
- Thực thi truy vấn FTS
- FTS thường sử dụng toán tử
tsvector @@ tsquery
tsquery định nghĩa bộ lọc khớp cho tsvector
- Ngoài ra còn có nhiều loại
tsquery khác: plainto_tsquery, phraseto_tsquery, websearch_to_tsquery
SELECT name FROM pdfs WHERE tsvec_en @@ to_tsquery('english', 'Postgres & Sharding');
- Có thể cải thiện hiệu năng bằng cách tạo chỉ mục GIN trên cột
tsvector
1 bình luận
Ồ.....