Автодополнение строк из очень большой базы. Поиск по строке?

На днях на хабре появилась интересная статья про ФИАС.

На fias.nalog.ru есть пример формы с поиском по всем адресам.


Самый простой пример реализации поиска только по улице очевиден: «SELECT * FROM street WHERE name LIKE '?%'» (с индексом по этому самому name, который будет использоваться только если ищем по паттерну '?%').

А какие есть более эффективные и производительные решения? Lucene? Sphinx?

Если не затруднит, ткните пальцем, что почитать.
  • Вопрос задан
  • 4255 просмотров
Пригласить эксперта
Ответы на вопрос 4
slang
@slang
Делал подобное на Sphinx, да, очень быстро, его и советую.
Ответ написан
@nutz
Действительно, тут гораздо быстрее будет работать движок, заточенный под такие задачи. Сталкивался только со Sphinx, поэтому если есть возможность ставить софт на сервере (а также запуск служб), то думаю стоит посмотреть в его сторону. Установить и настроить — дело одного дня. А в дальнейшем можно напряч и для каких-нибудь других сервисов сайта.
Ответ написан
@egorinsk
А что непроизводительного в LIKE something%? Индекс же используется.
Ответ написан
opium
@opium
Просто люблю качественно работать
Первое что вспоминается это индексы для лайка в целом работают
Недавно делал большую систему на sphinx, около 16 миллионов записей, тянет около 100 запросов в секунду фултекстсерч
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы