Junior — Middle
PostgreSQL ma'lumotlar bazasida to'liq matnli qidiruvni amalga oshiradigan ma'lumotlarni saqlash mexanizmi nima?
sobes.tech AI
AIdan javob
PostgreSQL'da to'liq matnli qidiruvni amalga oshirish uchun GiST (Generalized Search Tree) yoki GIN (Generalized Inverted Index) indeks turlari ishlatiladi. Asosiy ma'lumot matnni tsvector shaklida ifodalashdir — bu tuzilma matnni leksemlarga (so'zlar) bo'lib, ularni normallashtiradi va joylashuvlarini saqlaydi.
Qidiruvda tsquery ishlatiladi — bu so'rov tsvector bilan solishtiriladi. GIN indekslari ko'p so'zli tez qidiruv uchun ayniqsa samarali, chunki ular teskari indeksni quradi va kerakli leksemlarni o'z ichiga olgan hujjatlarni tezda topishga imkon beradi.
To'liq matnli qidiruv uchun indeks yaratish misoli:
CREATE INDEX idx_fts ON documents USING GIN(to_tsvector('russian', content));
Keyin, so'rovlar bajarilishi mumkin:
SELECT * FROM documents WHERE to_tsvector('russian', content) @@ to_tsquery('russian', 'поиск & база');