Junior — Middle
PostgreSQL veritabanında tam metin aramayı uygulayan veri depolama mekanizması nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
PostgreSQL'de tam metin araması uygulamak için GiST (Genelleştirilmiş Arama Ağacı) veya GIN (Genelleştirilmiş Ters İndeks) indeks mekanizması kullanılır. Temel, metni tsvector biçiminde temsil etmektir; bu yapı, metni köklerine (kelimelere) ayırır, normalize eder ve konumlarını saklar.
Arama sırasında tsquery kullanılır; bu, tsvector ile karşılaştırılan bir sorgudur. GIN indeksleri, birden çok kelime için hızlı arama yapmak üzere özellikle etkilidir çünkü ters indeks oluşturarak, gerekli kökleri içeren belgeleri hızlıca bulmayı sağlar.
Tam metin araması için indeks oluşturma örneği:
CREATE INDEX idx_fts ON documents USING GIN(to_tsvector('russian', content));
Daha sonra sorgular yapılabilir:
SELECT * FROM documents WHERE to_tsvector('russian', content) @@ to_tsquery('russian', 'поиск & база');