Desvendando o Algoritmo de Ranqueamento do Tabnews
Olá, pessoal! Recentemente, apareceu uma pergunta interessante aqui sobre como funciona o algoritmo de ranqueamento aqui na plataforma Tabnews. A questão levantada era sobre quais fatores influenciam a visibilidade de um artigo na aba relevante.
Quando fui postar a resposta, houve um erro, pois a pergunta havia sido delatada.
De qualquer forma como já tinha mergulhado no codigo e gostei muito do algortimo acho que é relevante postar.
Primeiro, seleciona-se os conteúdos que foram publicados nas últimas 24 horas e que possuem um "parent_id", ou seja, são respostas a outros conteúdos. Em seguida, busca pelos conteúdos raiz (aqueles sem "parent_id") que foram interagidos nos últimos 7 dias.
A partir daí, calcula uma pontuação para cada um desses artigos baseada no número de Tabcoins e na quantidade de autores únicos que responderam ao artigo.
Depois disso, o algoritmo divide os artigos em grupos com base em sua pontuação e data de publicação. Os primeiros grupos contêm os artigos mais recentes com as maiores pontuações. A medida que avançamos nos grupos subsequentes vemos uma diminuição tanto na exigência da pontuação quanto na atualidade do post.
Finalmente, todos esses dados são usados para ordenar os resultados finais: primeiro pelo grupo a qual pertencem (com menor número sendo melhor), depois pela sua pontuação decrescente e finalmente pela data de publicação também decrescente.
Em suma: se você quer ter seu artigo bem posicionado no Tabnews precisa garantir duas coisas principais - conseguir muitos Tabcoins e gerar discussões entre diferentes usuários!
Na minha opinião a implementação é muito elegante, inteligente e eficiente, ao mesmo tempo que é bastante simples. E mostra como SQL é uma ferramenta extramamente poderosa.
Seria muito legal ouvir do proprio Filipe a história por trás dele. E vocês o que acharam?