Я понимаю, что конкретно в этом случае, можно написать 1 sql запрос с объединением результатов, но сводные статистические-таблицы позволили бы не делать массивных выборок и ускорить получение данных.
Просмотрев требования к RAM, я пошел смотреть в сторону
https://sphinxsearch.com с его враппером для руби ThinkingSphinx.
Что смутило:
- как я понял, ThinkingSphinx навязывает парадигму, что индекс должен строиться относительно 1й activerecord-таблицы.
Т.е. индексатор потом пройдет по всем записям из таблицы result_table и по идее заиндексирует их.
Значит, предварительно мне нужно в эту таблицу данных самому сгенерировать.
Мне же кажется чище было бы сохранить эти данные на стороне Sphinx, т.к. он в любом случае делает индекс, почему бы в этот момент не стротить сразу же И данные для этого индекса?
- на стороне самого Sphinx вроде как есть поддержка realtime index, которые можно было бы обновлять в режиме per-record, но поддержка со стороны ThinkingSphinx я так понимаю еще кривая (как я например удалю индекс, который больше не актуален?
https://freelancing-gods.com/2013/07/22/rewriting-thinking-sphinx-introducing-realtime-indices.html)
Ну вот такая каша в голове, просьба пнуть куда-нибудь в правильную сторону.