I am not an expert on algorithms and these kinds of things, but i would imagine that, for a hot page to work the best, you would need to calculate the individual ‘trend score / trajectory’ of each post within a certain amount of time and not just sort by what got the most votes the last month.
Basic example:
Post A: Got 10 votes within 1 day = trend score 10
Post B: Got 10 votes within 3 days = trend score 3
Post C: Got 50 votes within 10 days = trend score 5
In the HOT category the order would be
Post A (with only 10 votes)
Post C (with 50 votes)
Post B (with 10 votes)
Maybe votes from specific groups or levels of users matter more when calculating the trend score. e.g. in my community i could see the value in giving moderators some kind of curator role where their vote matters more because they are really knowledgeable about the topics people discuss - so their role could be to upvote good topics and bump them into the hot category.
Makes sense. If we can nail down the weighting of votes, I can add a field to the topic that gives it a rating and then add that rating as a sort option. That would allow something along these lines: ?order=vote_rating. But that doesn’t solve the time period you mentioned.[quote=“commonpawn, post:26, topic:40121”]
Hot posts (trending within certain timeframe set by the admin)
[/quote]
I’m not sure that part is worth it. I could see the value in top votes given a time frame and a sort by this topic rating, but combining the two might be overkill.
Yeah i guess the ultimate solution would be a Hot sorting criteria which is scaleable and works for a forum with a lot of activity (100s of posts per day) to one with very little (10 posts per week - e.g. an idea board like UserVoice).
Agreed. My thinking is that this is a custom field that gets recalculated with a sidekiq job. The duration would need to be determined, though. Every 30 minutes? Every hour? I would want it to be as infrequent as we can get away with.
And thanks for the link. I’ll need a bit to digest that one.
My call here is that this is a V3 or V4 feature, we may get to it eventually. When we do I would just like to change it so “plugins” can inject extra signal into the existing hot algorithm.