Это не прямой ответ на ваш вопрос, но он может дать вам линию атаки на проблему.
Еще в 80-х и 90-х годах мы выставили информационно-поисковую систему, которая допускала очень большиечисло постоянных запросов .В частности, у нас были системы с 64 МБ памяти (что в те дни составляло buttload ), которые принимали более миллиона сообщений в день и применяли от 10000 до 100,00+ постоянных запросов к этому потоку.
Если бы все, что мы сделали, это итеративно применили каждый постоянный запрос к самым последним документам, мы были бы мертвым мясом.Мы сделали инверсию запросов, определив, что должен иметь , а может иметь условия в запросе.Затем мы использовали термин список из документа, чтобы найти те запросы, которые имели какой-либо шанс на успех.Заказчик научился создавать запросы, которые имели сильные отличия, и в результате иногда требовалось полностью оценить только 10 или 20 запросов.
Я не знаю ваш набор данных и не знаю, каков вашправила выглядят так, но может быть что-то подобное вы можете попробовать.