Как организовать поиск по 10 млн. документов?

Есть сайт. В MySQL БД хранится порядка 10 000 000 записей.

Нужно сделать полнотекстовый поиск + что бы поиск был релевантным.


Использование поискового движка не спасает. Уже при 1 млн. задержка выдачи результатов с помощью ApacheSolr несколько секунд.

Пытались смотреть на www.elasticsearch.org и вообще связки с NoSQL (HSearch), но решения способного давать релевантную выдачу за приемлемое время не нашли. Вернее варианты есть, но пришлось бы реализовывать логику подсчета релевантности самим, для всех типов записей, а хотелось бы чего-нибудь готового.
  • Вопрос задан
  • 2802 просмотра
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 7
@IRuslan Автор вопроса
Спасибо за информацию. Устроим тест-драйв сфинксу, тогда станет понятно подойдет ли он нам…
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
До 100 запросов в секунду держит сфинкс.
Ответ написан
@IRuslan Автор вопроса
В рамках поставленного вопроса, да сфинкс скорее всего бы спас.

Но ввиду того, что приложение на PHP + MySQL с таким объемом может не справиться, видится необходимость добавления NoSQL. И как следствие хотелось бы найти самый простой способ объединения NoSQL и поискового движка.
Идеальной была бы связка NoSQL + Search таким образом что бы поисковик отдавал список ключей по релевантности, а сами документы уже потом тянуть из NoSQL.
Ответ написан
@aleks_raiden
Xapian например
Ответ написан
Комментировать
Riateche
@Riateche
Яндекс для сервера, как вариант.
Ответ написан
Комментировать
@densilvio
Мы для этой цели использовали Lucene
Ответ написан
Комментировать
Aleksey
@Aleksey
Использование поискового движка не спасает. Уже при 1 млн. задержка выдачи результатов с помощью ApacheSolr несколько секунд.

Вы что-то делаете не так.
  • сколько индекс занимает на жестком диске?
  • сколько памяти выделяете под виртуальную машину и сколько соотв-но остается под файловый кеш операционной системы?
  • какое кол-во документов возвращает поисковый запрос?
  • есть ли какие-то хитрые штуки вроде группировки документов или подсветки ключевых слов на огромных документах


Ну в вообще, если документы не огромные, то обьем вполне реальный, и даже не требует распределенного индекса, при увеличении нагрузки можно обойтись и репликацией.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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