Junior — Middle
Koji mehanizam za skladištenje podataka implementira pretraživanje punog teksta u bazi podataka PostgreSQL?
sobes.tech АИ
Одговор од АИ
У PostgreSQL, за реализовање потпуног претраживања текста користи се механизам индекса типа GiST (Generalized Search Tree) или GIN (Generalized Inverted Index). Основу представља приказ текста у облику tsvector — структура која дели текст на лексеме (речи), нормализује их и чува њихове позиције.
При претрази користи се tsquery — упит који се пореди са tsvector. Индекси GIN су посебно ефикасни за брзо претраживање по више речи, јер граде обрнути индекс који омогућава брзо проналажење докумената који садрже потребне лексеме.
Пример креирања индекса за потпуно претраживање текста:
CREATE INDEX idx_fts ON documents USING GIN(to_tsvector('russian', content));
Затим се могу извршавати упити:
SELECT * FROM documents WHERE to_tsvector('russian', content) @@ to_tsquery('russian', 'поиск & база');