Как организовать хранение большого количества текстовых документов с возможностью поиска по ним?
Приветствую!
Имеется:
- Арендованный сервер
- Около 200 млн. документов в виде HTML разметки, общим весом в 6+ ТБ
- Каждый документ ссылается на один или несколько документов (html ссылки в тексте)
Задача:
1. Организовать хранилище этих документов, с возможностью достаточно быстрого поиска как по тексту документа (с учетом морфологии), так и фильтрации по другим параметрам (даты, категории и тп).
2. Дополнительно нужна возможность отображения документов, которые ссылаются на выбранный документ.
Что выбрать для реализации, что бы не иметь проблем с производительностью? Справится ли связка MySql + ElasticSearch или лучше выбрать что-то другое ?
ThunderCat, Да, сфинкс тоже рассматриваем, но в сфинксе не особо нравится тот факт, что у него будет свой отдельный индекс (который тоже будет не мало весить) и в итоге, придется хранить тексты в индексе сфинкса, и еще где-то хранить необработанные оригиналы.
В добавок у сфинкса очень ограниченная поддержка языков (ru и en), а документы на русском и украинском языках. По этой причине ES нравится больше.
Я бы попробовал сделать на ES без каких либо связок. То есть открываем документ, получаем контент и добавляем в индекс ES. Вдобавок можете распарсить документ на ссылки и добавить в индекс их, тогда вам не нужна никакая БД