Что делать, если мы хотим искать по названию книги — какой индекс использовать?

Индекс зависит от поиска: для точного названия обычно подходит B-tree, для подстроки — триграммный индекс, для поиска по смысловым словам — полнотекстовый. Одного универсального индекса нет.

Короткий ответ

Что ответить на собеседовании

Индекс зависит от поиска: для точного названия обычно подходит B-tree, для подстроки — триграммный индекс, для поиска по смысловым словам — полнотекстовый. Одного универсального индекса нет.

Подробный разбор

Ответ с пояснениями

Индекс зависит от поиска: для точного названия обычно подходит B-tree, для подстроки — триграммный индекс, для поиска по смысловым словам — полнотекстовый. Одного универсального индекса нет.

В PostgreSQL pg_trgm предоставляет GIN/GiST-индексы для LIKE/ILIKE и похожести строк. Например, название, содержащее подстроку, ищут через ILIKE '%text%'. Очень короткие шаблоны могут плохо использовать триграммы. Для префикса учитывайте collation и операторный класс B-tree. Проверяйте план и стоимость обновления индекса на характерных запросах.

Источник: www.postgresql.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее