¿La manera más sencilla de implementar el orden de relevancia para resultados de búsqueda usando etiquetas?

¡Hola! Hace unas semanas configuré mi primera instancia de Discourse, utilizando el tema Fakebook para adaptar Discourse como plataforma de redes sociales de nicho. He estado jugando con plugins y disfrutando mucho del proceso de desarrollo. Es una herramienta increíble, gracias a todos los que la han creado.

Utilizo el etiquetado de publicaciones de forma extensiva para determinar qué publicaciones son relevantes para qué usuarios. Tengo tres grupos de etiquetas, y las publicaciones se etiquetan automáticamente o manualmente con al menos una etiqueta de cada grupo, por lo que al menos tres etiquetas por publicación. Los usuarios tienen una página de configuración donde pueden elegir qué etiquetas les interesan particularmente.

En el feed principal, me gustaría mostrar a los usuarios todas las publicaciones, y me gustaría que las publicaciones con más etiquetas preferidas por el usuario aparecieran más arriba en el feed. Por lo tanto, si una publicación tiene tres de las etiquetas preferidas del usuario, aparecería más arriba en el feed para ese usuario que una publicación con solo dos de sus etiquetas preferidas. Esto puede ser “difuso”, y sería ideal si se integrara con cualquier búsqueda. En otras palabras, cada vez que un usuario realiza una búsqueda, los resultados de la búsqueda con sus etiquetas preferidas se “impulsan” y aparecen más arriba, con más etiquetas proporcionando un impulso más fuerte.

Mi idea es que una forma sencilla de implementar esto sería crear un plugin que asigne un código de texto a cada etiqueta, y cuando un tema reciba una etiqueta, el plugin agregará el código de texto en el cuerpo de la primera publicación, en un div oculto. Luego, podría agregar automáticamente los códigos de texto de las etiquetas preferidas del usuario a todas las búsquedas. Si esto funcionara como creo, podría permitir que las etiquetas preferidas influyan en la relevancia de la búsqueda sin modificar la funcionalidad central de búsqueda.

Para las personas con experiencia en desarrollo en Discourse, ¿tienen otras sugerencias para implementar esto de mejor manera? Y, ¿creen que la idea de los códigos de texto funcionaría?

¡Muchas gracias!

2 Me gusta

Gracias @codinghorror por categorizar esto correctamente. No estaba seguro de si “funcionalidad” incluía el desarrollo de complementos.