Я бы предложил гибридное решение с обычным сервером SQL для реального хранилища и механизмом поиска на основе Lucene, который заполняется из SQL на основе какого-либо автоматического или синхронизированного события.Веб-слой запрашивает уровень Lucene и записывает SQL.
Бэкэнд SQL сохраняет ваши параметры открытыми на будущее (OLAP ?? и т. Д.), А также предоставляет стандартный, масштабируемый и многопользовательский способ приема данных измир через библиотеки dbconnection и пользовательский интерфейс.Короче говоря, если ваши данные хранятся в SQL, вы не можете быть потеряны ...
Уровень Lucene обеспечивает исключительную производительность запросов, если его возможностей достаточно.(В двух словах: поиск значений поля по числам, датам, строкам и т. Д., Поиск по диапазону, поиск по нескольким значениям поля (фактически поле является массивом), все с логическими операторами и логическими двоичными выражениями, сортировка и разбиение на страницы. ОДНАКО!группировки и сумма, средние и т. д. агрегирующие функции).
ОБНОВЛЕНИЕ: прошло несколько лет.Solr теперь обладает статистическими возможностями, такими как sum, avg и т. Д. *
Производительность запроса: в базе данных элементов 100M выбор пары сотен элементов с предикатом многополюсного запроса меньше 100 мс.
ЗаполнениеИндекс занимает постоянное время (без увеличения по размеру) из-за внутренней реализации splitfile.Можно создать 5-миллионный индекс строк за минуты, 20 вершин, в зависимости, в основном, от вашего контроллера хранения.Однако Lucence поддерживает обновление индекса в реальном времени, что мы успешно использовали на сайтах с высокой нагрузкой.
Lucene поддерживает разбиение и индексацию на субиндексы и иерархии индексов, так что вы можете создавать индексы в день, но выполнять поиск по всем из них (или в определенном подмножестве) с помощью одного запроса (с помощью многоиндексного адаптера).).Я попробовал его с 2000 уникальными индексными файлами, и производительность была потрясающей.
Эта архитектура может быть реализована без особых усилий в Java и .NET, и в ней есть отличная поддержка SQL и Lucene