Los resultados de búsqueda deben priorizar la primera publicación del tema cuando el título coincide con el término de búsqueda

Entonces, ¿no hay forma alguna de indicar en el índice de búsqueda si una publicación es la primera?

¿Qué tal este tipo de ajuste:

Cuando varias publicaciones en un tema coinciden con un término de búsqueda dado, Y UNA DE ELLAS ES LA PRIMERA PUBLICACIÓN, otorgar a esa publicación específica, la que es la primera, un gran impulso en el ranking de búsqueda.

De esta manera, evitas un comportamiento ciego de “ordenar por número de publicación”, al tiempo que das prioridad correctamente a la primera publicación.

2 Me gusta

Actualmente no, pero no sería difícil agregarlo, ya que es similar a una optimización que realicé el año pasado para permitirnos filtrar el PostSearchIndex por mensajes privados (PM) o no PM.

2 Me gusta

Mi postura aquí es que el beneficio teórico de una clasificación precisa de duplicados según el tema tiene demasiadas desventajas.

  • La gente podría usar la búsqueda como un marcador y confundirse cuando una búsqueda que siempre los llevaba al mensaje #77 ahora los lleva al #892.

  • Para empeorar las cosas, no tenemos ningún mecanismo para “ir al primer mensaje no leído en un tema”, por lo que priorizar los mensajes posteriores conlleva una gran desventaja: aumenta la probabilidad de crear lagunas en la lectura (por ejemplo, leíste 1, 2, 3, pero no leíste del 4 al 88… y ahora llegas al 89).

Prefiero mucho priorizar incondicionalmente el primer resultado en un tema; es más sencillo de explicar y mucho más estable.

5 Me gusta

Estoy de acuerdo y esa solución me funciona :+1:

4 Me gusta

¿Utilizamos la clasificación del primer resultado o la clasificación de la mejor publicación del tema? Antes hacíamos lo segundo, lo cual parece incorrecto, ya que estábamos tomando la clasificación de una publicación que no aparecerá en los resultados de búsqueda para compararla con las publicaciones de otros temas.

3 Me gusta

Diría que enlazamos a MIN(post_number) y clasificamos por MAX(rank) al realizar las operaciones de agregación.

3 Me gusta

El nuevo comportamiento se ha revertido en

5 Me gusta

Este tema se cerró automáticamente después de 6 días. Ya no se permiten nuevas respuestas.

Gracias por volver a abrir el tema. Creo que aún hay un problema relacionado con esto. En https://community.wanikani.com, hay un tema titulado “General Anime Thread”. Si busco “general anime”, obtengo este tema como el primer resultado, pero me lleva al post 511. Lo particularmente extraño es que este mensaje ni siquiera contiene las palabras “general” ni “anime”. De alguna manera, esto parece ser incluso peor que el problema reportado originalmente. Por lo que puedo ver, https://community.wanikani.com debería estar en una versión posterior a la fusión de esta corrección.

Para dar un segundo ejemplo, si busco “japanese book club”, obtengo el post 925 de ese tema, aunque el término de búsqueda está en el título del tema.

He intentado reproducirlo en meta, pero no he podido. Podría ser simplemente por los términos específicos que he intentado buscar.

4 Me gusta

¿Verificaste la versión viendo el código fuente? Si no puedes reproducirlo aquí, es probable que haya una incompatibilidad de versiones.

1 me gusta

Esto proviene del código fuente de la página:

Discourse 2.7.0.beta4 - https://github.com/discourse/discourse versión 47835ade9a3dcebb14bdd744e92d93b9c9199b90

Ese commit es de hace dos días y todavía puedo reproducir este problema con los ejemplos de mi último mensaje.

3 Me gusta

¡Gracias por el informe tan detallado, @tgxworld lo revisará rápidamente!

4 Me gusta

@sam Sé de qué se trata. Tenemos una optimización del rendimiento de búsqueda en sitios grandes donde solo buscamos en un índice parcial. Como el primer mensaje es muy antiguo, queda fuera del índice parcial, por eso no estamos enlazando a él. Necesito pensar en la solución para esto, ya que las ideas que tengo actualmente implican un compromiso: o bien sacrificamos rendimiento por precisión, o precisión por rendimiento.

3 Me gusta

¿Sería razonable (en términos de compromiso de rendimiento) incluir en el índice la primera publicación de cada tema? ¿O quizás solo la primera publicación de cada tema si este tiene una publicación dentro del rango de tiempo optimizado? Asumiendo que esta última opción sea incluso viable desde una perspectiva de base de datos.

3 Me gusta

Esto es técnicamente factible, pero es un problema monumental.

Temo que el compromiso de dedicar, digamos, una semana a un reordenamiento cuidadoso del índice podría no valer la pena para corregir esto.

También puedo imaginar muchas situaciones atípicas que complican esto (como un foro con montañas de temas cortos).

Esperemos un poco con esto y veamos con qué frecuencia aparece.

Un cambio interino que probablemente podamos permitirnos en tu foro es duplicar el tamaño de tu índice reciente; esto es configurable (@tgxworld, quizás puedas hacerlo así).

4 Me gusta

¡Gracias! Si crees que es seguro hacerlo, ¡sería genial!

3 Me gusta

¿Se llegó a hacer esto? Buscar el tema mencionado anteriormente ahora lleva al mensaje 523 en lugar del 511, lo que parece indicar que cada vez más mensajes quedan fuera del alcance del índice.

2 Me gusta

Hola Sean, lo siento, no se había mencionado.

Acabo de cambiarlo (SiteSetting.search_recent_posts_size) a 250k; solo tienes 163k temas. Tomará un par de días para que el cambio surta efecto, ya que debe ejecutarse un trabajo programado.

4 Me gusta

Creo que los cambios ya se han aplicado. Antes lo cambié a 1 millón, pero olvidé publicar una actualización aquí.

@sam, ¿tenemos previsto abordar este problema en algún momento? Incluir todas las primeras publicaciones en el índice parcial no parece un mal intercambio. Sé, por discusiones anteriores, que @codinghorror cree que la búsqueda debe priorizar fuertemente los temas antes de permitir que aparezcan publicaciones dentro de un tema.

3 Me gusta