Спроектируй систему индексирования для таблицы, где хранятся все города России, с учётом того, что поиск будет вестись по названию города.

Сначала уточните тип поиска: точное имя, префикс, подстрока или опечатки. Для небольшого справочника начните с обычной БД; B-Tree и триграммный индекс решают разные варианты поиска.

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

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

Сначала уточните тип поиска: точное имя, префикс, подстрока или опечатки. Для небольшого справочника начните с обычной БД; B-Tree и триграммный индекс решают разные варианты поиска.

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

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

Сначала уточните тип поиска: точное имя, префикс, подстрока или опечатки. Для небольшого справочника начните с обычной БД; B-Tree и триграммный индекс решают разные варианты поиска.

Храните стабильный city_id, исходное название и регион: одинаковые имена не должны сливаться. Для регистронезависимого точного поиска пригоден индекс по согласованной нормализации имени. Для подстрок и нечёткого поиска PostgreSQL предлагает pg_trgm с подходящим GIN/GiST-индексом. Правила для ё/е и альтернативных названий задайте явно. Ограничьте выдачу, определите ранжирование и проверьте план на коротких запросах; отдельный поисковый кластер не обязателен для такого объёма.

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

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

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

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

Подробнее