La búsqueda de "Mover a tema existente" falla silenciosamente mientras que la búsqueda del sitio sigue funcionando

Hola,

Estoy viendo un problema con la ventana modal “Mover a tema existente” (esto funcionaba anteriormente en mi sitio, por lo que parece ser una regresión):

  • Escribir en Buscar un tema no refina los resultados
  • Las solicitudes de red devuelven 200 con los parámetros correctos
  • No hay errores de JS en la consola del navegador
  • El /search de todo el sitio funciona como se espera
  • El problema ha persistido a través de reconstrucciones

Solicitud de ejemplo que se está realizando:
/search/query?term=Eve Park&type_filter=topic&search_for_id=true&restrict_to_archetype=regular

La lista de selección parece seguir siendo un conjunto estático de temas y no cambia a medida que cambia el term.


Después de la depuración del lado del cliente, inicialmente sospeché que esto podría ser causado por que pg_trgm no estuviera habilitado en Postgres, pero quería confirmarlo antes de continuar.

Ejecuté los siguientes comandos:

./launcher enter app
rails c
ActiveRecord::Base.connection.execute(
  "SELECT extname FROM pg_extension WHERE extname = 'pg_trgm';"
).to_a

Este diagnóstico sería válido si el comando devolviera:

[]

Sin embargo, en su lugar devolvió:

[{"extname"=>"pg_trgm"}]

Así que pg_trgm está habilitado, y este no parece ser la causa raíz.


Por lo tanto, tengo la intención de ejecutar el siguiente comando:

./launcher enter app
rake search:reindex

Esto podría ser relevante porque una categoría particular de mi foro tiene una gran cantidad de temas.


Lo que confunde es que:

  • Discourse por lo demás sigue funcionando normalmente
  • La búsqueda completa /search funciona como se espera
  • El autocompletado de movimiento de temas degrada silenciosamente en lugar de advertir

Como parte de la depuración, también habilité la configuración search prefer recent posts (buscar preferir publicaciones recientes) y recargué el navegador. Esto no tuvo ningún efecto en el comportamiento: la búsqueda de “Mover a tema existente” todavía no refina los resultados mientras escribo.

Dado que esa configuración solo afecta la búsqueda completa /search y no el punto final del selector de temas, esto parece consistente con que el problema es específico de /search/query en lugar del rendimiento general de la búsqueda.


Antes de ejecutar rake search:reindex, quería verificar la lógica:

El selector de movimiento de temas utiliza /search/query con search_for_id=true, que depende más directamente de las búsquedas indexadas que el punto final /search completo. Por lo tanto, un índice de búsqueda parcialmente desactualizado o inconsistente podría afectar al selector mientras que la búsqueda completa parece seguir funcionando.

Dado que:

  • se está llamando al punto final,
  • las respuestas devuelven 200,
  • pg_trgm está habilitado,
  • y alternar search prefer recent posts no tiene efecto,

Un rake search:reindex completo parece ser el siguiente paso lógico para descartar la inconsistencia del índice. Por separado, la falta de cualquier advertencia o retroalimentación hace que esto sea particularmente confuso desde una perspectiva de UX de administrador.

1 me gusta

Esa búsqueda nunca ha sido fiable en mi experiencia. Por ejemplo, también existe este informe: Topic can't be found when searching for a topic (verbatim) when moving a post.
Normalmente introduzco el ID del tema y utilizo la búsqueda del sitio para encontrarlo.

1 me gusta

Gracias, ese contexto es útil, y el informe enlazado parece muy similar.

Lo extraño en mi caso es que se comportó como “no respondía” cuando escribí la publicación original: se estaba llamando a /search/query con term=Eve Park, etc. (respuestas 200), pero la lista de selección permaneció estática y no se refinó en absoluto.

Desde entonces, ahora puedo reproducir el comportamiento de “búsqueda receptiva” previsto (como se muestra en mi grabación en Modo Seguro) lado a lado con otra ventana del navegador.

No he cambiado nada en el servidor más allá de lo que describí en la publicación original, por lo que mi sospecha actual es que inicialmente encontré:

  • un problema de estado del lado del cliente (activos en caché / diferencia de actualización forzada / interacción de componentes de tema), o
  • un caso extremo de consulta donde ciertos términos no se devuelven como se espera (búsqueda literal / puntuación / palabras vacías / ordenación), similar al informe “la búsqueda de movimiento literal no puede encontrar el tema” que usted enlazó.

A continuación, voy a comparar la respuesta JSON real de /search/query entre el caso “no receptivo” y el caso “receptivo” (mismo término), y también ejecutaré el Modo Seguro nuevamente con/sin temas para ver si se correlaciona.

Si alguien conoce las reglas exactas de coincidencia utilizadas por el selector de mover tema (frente a la búsqueda completa /search) o en qué se diferencian, eso sería de gran ayuda: estoy tratando de determinar si esta es una limitación/caso extremo conocido o una regresión.