Tìm kiếm toàn văn trong PDF bằng Postgres
(tselai.com)- 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
tsvectorcủa từng PDF.tsvectorbiể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
tsvectorcó 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ộttxt
- 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 chotsvector- Ngoài ra còn có nhiều loại
tsquerykhác:plainto_tsquery,phraseto_tsquery,websearch_to_tsquery SELECT name FROM pdfs WHERE tsvec_en @@ to_tsquery('english', 'Postgres & Sharding');
- FTS thường sử dụng toán tử
- 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
Ồ.....