18 puan yazan xguru 2024-11-01 | 1 yorum | WhatsApp'ta paylaş
  • pgPDF, PDF dosyalarını SQL ile okuyabilen bir Postgres uzantısıdır (poppler için bir wrapper)
    SELECT pdf_read_file('/path/file.pdf') → text
  • Veri depolama yöntemi
    • PDF dosyası içeriği, tabloda metin (txt) ve ikili veri (bytes) biçiminde saklanır
    • Her PDF'in tsvector değeri de saklanır. tsvector, belgeyi metin araması için optimize edilmiş bir biçimde temsil eder
    • tsvector oluşturmak maliyetlidir, ancak yalnızca bir kez yapılması gerektiğinden generated sütunda saklamak iyi bir fikirdir
    • FTS sorguları txt sütunu üzerinde değil, tsvector üzerinde çalıştırılır
  • FTS sorgusu çalıştırmak
    • FTS genellikle tsvector @@ tsquery operatörünü kullanır
    • tsquery, tsvector için eşleşme filtresini tanımlar
    • Bunun dışında da çeşitli tsquery türleri vardır: plainto_tsquery, phraseto_tsquery, websearch_to_tsquery
    • SELECT name FROM pdfs WHERE tsvec_en @@ to_tsquery('english', 'Postgres & Sharding');
  • tsvector sütununda GIN indeksi oluşturarak performans iyileştirilebilir

1 yorum

 
cosine20 2024-11-01

O.....