Sobes.tech
Junior — Middle

PostgreSQL verilənlər bazasında tam mətn axtarışını həyata keçirən məlumat saxlama mexanizmi nədir?

sobes.tech Süni İntellekt

AI-dan cavab

PostgreSQL-də tam mətn axtarışını həyata keçirmək üçün GiST (Generalized Search Tree) və ya GIN (Generalized Inverted Index) indeks mexanizmi istifadə olunur. Əsas, mətni tsvector şəklində təqdim etməkdir — bu struktur mətni leksemlərə (sözlərə) bölür, onları normallaşdırır və mövqelərini saxlayır.

Axtarış zamanı tsquery istifadə olunur — bu, tsvector ilə müqayisə olunan sorğudur. GIN indeksləri çox söz üçün sürətli axtarış üçün xüsusilə effektivdir, çünki tərs indeks qurur və lazım olan leksemləri ehtiva edən sənədləri tez tapmağa imkan verir.

Tam mətn axtarışı üçün indeksin yaradılması nümunəsi:

CREATE INDEX idx_fts ON documents USING GIN(to_tsvector('russian', content));

Sonra sorğular icra oluna bilər:

SELECT * FROM documents WHERE to_tsvector('russian', content) @@ to_tsquery('russian', 'поиск & база');