Maneira mais simples de implementar ordenação por relevância para resultados de busca com tags?

Olá! Configurei minha primeira instância do Discourse há algumas semanas, usando o tema Fakebook para adaptar o Discourse para uso como uma plataforma de mídia social de nicho. Tenho brincado com plugins e gostado muito do processo de desenvolvimento. É uma ferramenta incrível, obrigado a todos que criaram isso.

Eu uso a marcação de posts extensivamente para determinar quais posts são relevantes para quais usuários. Tenho três grupos de tags, e os posts são automaticamente marcados ou manualmente marcados com pelo menos uma tag de cada grupo, então pelo menos três tags por post. Os usuários têm uma página de configurações onde podem escolher quais tags são de particular interesse para eles.

No feed principal, gostaria de mostrar aos usuários todos os posts, e gostaria que os posts com mais tags preferidas do usuário aparecessem mais alto no feed. Portanto, se um post tiver três das tags preferidas do usuário, ele apareceria mais alto no feed para esse usuário do que um post com apenas duas de suas tags preferidas. Isso pode ser “difuso” e, idealmente, seria ótimo se isso se integrasse a qualquer pesquisa. Em outras palavras, sempre que um usuário faz uma pesquisa, os resultados da pesquisa com suas tags preferidas são “impulsionados” e aparecem mais perto do topo, com mais tags fornecendo um impulso mais forte.

Meu pensamento é que uma maneira simples de implementar isso seria criar um plugin que atribui um código de texto a cada tag e, quando um tópico recebe uma tag, o plugin anexa o código de texto no corpo do primeiro post, em uma div oculta. Então, eu poderia anexar automaticamente os códigos de texto para as tags preferidas do usuário a todas as pesquisas. Se isso funcionasse da maneira que estou pensando, poderia permitir que as tags preferidas influenciassem a relevância da pesquisa sem modificar a funcionalidade principal de pesquisa.

Para as pessoas aqui com experiência em desenvolvimento no Discourse, vocês têm outras sugestões de melhores maneiras de implementar isso? E vocês acham que a ideia com os códigos de texto funcionaria?

Muito obrigado!

2 curtidas

Obrigado @codinghorror por categorizar isso corretamente. Eu não tinha certeza se “recurso” incluía o desenvolvimento de plugins.