Olá,
Estou a ver um problema com a modal “Mover para tópico existente” (isto funcionava anteriormente no meu site, parecendo ser uma regressão):
- Digitar em Procurar um Tópico não refina os resultados
- As solicitações de rede retornam 200 com os parâmetros corretos
- Nenhum erro de JS na consola do navegador
- A pesquisa
/searchde todo o site funciona como esperado - O problema persistiu após reconstruções
Exemplo de solicitação sendo feita:
/search/query?term=Eve Park&type_filter=topic&search_for_id=true&restrict_to_archetype=regular
A lista de seleção parece permanecer um conjunto estático de tópicos e não muda à medida que o
term(termo) muda.
Após depuração do lado do cliente, inicialmente suspeitei que isto poderia ser causado por pg_trgm não estar ativado no Postgres, mas queria confirmar isto antes de prosseguir.
Executei os seguintes comandos:
./launcher enter app
rails c
ActiveRecord::Base.connection.execute(
"SELECT extname FROM pg_extension WHERE extname = 'pg_trgm';"
).to_a
Este diagnóstico seria válido se o comando retornasse:
[]
No entanto, em vez disso, retornou:
[{"extname"=>"pg_trgm"}]
Portanto, pg_trgm está ativado, e isto não parece ser a causa raiz.
Portanto, pretendo executar o seguinte comando:
./launcher enter app
rake search:reindex
Isto pode ser relevante porque uma categoria específica do meu fórum tem um número muito grande de tópicos.
O que é confuso é que:
- O Discourse continua a funcionar normalmente
- A pesquisa completa
/searchfunciona como esperado - O autocompletar de movimentação de tópicos degrada-se silenciosamente em vez de avisar
Como parte da depuração, também ativei a configuração search prefer recent posts (pesquisar preferir posts recentes) e recarreguei o navegador. Isto não teve efeito no comportamento - a pesquisa de “Mover para tópico existente” ainda não refina os resultados enquanto digito.
Como essa configuração afeta apenas a classificação da pesquisa completa /search e não o endpoint do seletor de tópicos, isto parece consistente com o problema ser específico de /search/query em vez do desempenho geral da pesquisa.
Antes de executar rake search:reindex, queria verificar a lógica:
O seletor de movimentação de tópicos usa /search/query com search_for_id=true, que depende mais diretamente de pesquisas de índice do que o endpoint /search completo. Um índice de pesquisa parcialmente desatualizado ou inconsistente poderia, portanto, afetar o seletor enquanto a pesquisa completa ainda parece funcionar.
Dado que:
- o endpoint está a ser chamado,
- as respostas retornam 200,
pg_trgmestá ativado,- e alternar
search prefer recent postsnão tem efeito,
Um rake search:reindex completo parece ser o próximo passo lógico para descartar a inconsistência do índice. Separadamente, a falta de qualquer aviso ou feedback torna isto particularmente confuso da perspetiva da experiência do utilizador (UX) do administrador.