Быстрый поиск rubygems.org показывает, что вам придется заняться программированием. Это хорошо, так как система общего обнаружения тенденций будет либо безнадежно сложной для настройки и настройки, либо ужасно угадывает, что диктует «тренд» в вашем приложении.
Я собираюсь сделать некоторые предположения относительно вашего заявления.
Давайте предположим, что пользователи самостоятельно классифицируют свои твиты, используя хэш-теги (#). Кроме того, давайте продолжим и скажем, что отсортированное количество этих хеш-тегов определит, была ли тема в тренде.
Теперь поговорим о части информатики. Учитывая наши предположения, приведенные выше, вам нужно будет иметь возможность быстро запрашивать и сортировать коллекцию хэштегов, чтобы выяснить, что в тренде.
Вы используете MongoDB и mongoid (с рельсами), поэтому самый простой способ сделать это - создать коллекцию, в которой есть документы-теги, содержащие количество их использования. Создание индексов по тегу и количеству
Когда кто-то пишет в Твиттере, выясните, что такое хеш-теги, найдите их в коллекции тегов и увеличьте их количество. Чтобы выяснить, что в тренде, запросите коллекцию тегов и отсортируйте по количеству. Это позволит вам получить все хеш-теги за все время.
Если вы хотите получить более конкретную информацию, вместо того, чтобы просто хранить счетчики, храните счетчики, разбитые на дельты времени (неделя, день, час и т. Д.), Возможно, сохраняя их отдельно. Вы можете создавать документы, которые представляют вашу дельту времени вместо отдельных тегов, и хранить все теги с их количеством внутри.
{
start: "start datetime",
end: "end datetime",
tags: {
awesome: 3,
cool: 2,
boring: 2
}
}
Вы также можете использовать ограниченную коллекцию. Надеюсь, это поможет, все это действительно зависит от того, что вы пытаетесь сделать. Вы можете по-настоящему сойти с ума и рассчитать тренды по времени и т. Д. Вы можете прочитать новостной код reddit или хакера, чтобы получить представление о том, на что это похоже.