Раньше я создавал подобное дополнение Maximo. В нашем случае у нас есть таблицы с 35-40 миллионами записей, работающих в базе данных Oracle. Мы используем обычный индекс БД, и поиск данных не быстрый, но приемлемый. Запрос, объединяющий две такие таблицы, обычно возвращает результат через 10-15 секунд.