transcend
@transcend

Как быстро искать текст по большой базе данных?

Добрый день!

Имеется база данных доменных имен. Основные записи - имена доменов. База поставляется в виде CSV-файла. База ежедневно обновляется, удаляются удаленные домены, добавляются вновь зарегистрированные.

Объем ~160 миллионов записей.

Стоит задача организовать быстрый и стабильно работающий поиск по этой базе. Например, нужно найти все домены с вхождением *google* (т.е. это слово может встречаться в любом месте названия домена). Для оптимизации минимальное кол-во символов может быть 4.

Вопросы:
1) Какие технологии использовать для организации поиска? Конкретно, какую БД или иные возможности
2) Какая конфигурация сервера необходима?
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 2
@bacon
1. Поставить на доступный комп postgresql, залить туда эти домены.
2. Проиндексировать имя домена, но из-за "слово может встречаться в любом месте названия домена", обычные индексы не подойдут, но вот поможет pg_trgm
3. С помощью explain analyze посмотреть что там получается по поиску, возможно подкрутить запрос и настройки базы.
4. Провести нагрузочное тестирование, по результатам уже принимать решение по конфигурация сервера.
5. Если всё плохо, потестировать как будет работать, если индекс вынести в отдельный софт типа sphinx или elasticsearch.
Ответ написан
dimonchik2013
@dimonchik2013
...а ну-ка пыль сдуй отсюда...
не в службу а в дружбу - попробуй clickhouse
да, там по идиотски придется задавать данные, но вот по строкам он как бы не шустрее известных Сфинксов / Мантикор , а уж эластиков тем более

и по памяти норм
Ответ написан
Ваш ответ на вопрос

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

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