Resultados da pesquisa devem priorizar a primeira postagem no tópico quando o título corresponder ao termo de pesquisa

Então, não há absolutamente nenhuma maneira de saber no índice de busca se o post é o primeiro post?

E quanto a esse tipo de ajuste:

Quando vários posts em um tópico correspondem a um termo de busca, E UM DOS POSTS É O PRIMEIRO POST dar a esse post específico, o que é o primeiro post, um grande impulso na classificação de busca.

Assim, você evita um comportamento sem sentido de “ordenar por número de post”, ao mesmo tempo em que dá prioridade adequada ao primeiro post?

2 curtidas

Atualmente não, mas não seria difícil adicionar, já que é semelhante a uma otimização que fiz no ano passado para permitir que filtrássemos o PostSearchIndex por MP ou não MP.

2 curtidas

Minha posição aqui é que o benefício teórico de um ranking preciso de duplicatas por tópico tem muitos mais pontos negativos.

  • As pessoas podem estar usando a busca como um marcador e ficar confusas quando uma busca que sempre as levava ao post #77 agora as leva ao #892.

  • Para agravar a situação, não temos nenhum mecanismo para “ir para a primeira mensagem não lida em um tópico”, então priorizar posts mais recentes traz uma grande desvantagem: há maior probabilidade de criar lacunas na leitura (por exemplo, você lê 1, 2, 3, mas não lê de 4 a 88… e agora pula para o 89).

Prefiro muito priorizar incondicionalmente o primeiro resultado em um tópico; é mais simples de explicar e muito mais estável.

5 curtidas

Concordo e essa solução funciona para mim :+1:

4 curtidas

Usamos a classificação do primeiro resultado ou a classificação da melhor postagem no tópico? Costumávamos fazer o último, o que parece incorreto, pois estávamos usando a classificação de uma postagem que não aparecerá no resultado da pesquisa para ser classificada contra postagens de outros tópicos.

3 curtidas

Eu diria que linkamos para MIN(post_number) e ranqueamos por MAX(rank) ao fazer as agregações.

3 curtidas

O novo comportamento foi revertido em

5 curtidas

Este tópico foi automaticamente fechado após 6 dias. Novas respostas não são mais permitidas.

Obrigado por reabrir o tópico. Acho que ainda há um problema relacionado a isso. Em https://community.wanikani.com, há um tópico intitulado “General Anime Thread”. Se eu pesquisar por “general anime”, esse tópico aparece como o primeiro resultado, mas leva ao post 511. O que é particularmente estranho é que esse post nem mesmo contém as palavras “general” ou “anime”. Então, de alguma forma, isso parece até pior do que o problema originalmente relatado. Pelo que pude verificar, https://community.wanikani.com deveria estar em uma versão posterior à fusão dessa correção.

Para dar um segundo exemplo, se eu pesquisar por “japanese book club”, obtenho o post 925 desse tópico, mesmo que o termo de pesquisa esteja no título do tópico.

Tentei reproduzir o problema no meta, mas não consegui. Pode ser apenas os termos específicos que tentei pesquisar.

4 curtidas

Você verificou a versão visualizando o código-fonte? Se o problema não puder ser reproduzido aqui, provavelmente é uma incompatibilidade de versão.

1 curtida

Isso é do código-fonte da página:

Discourse 2.7.0.beta4 - https://github.com/discourse/discourse versão 47835ade9a3dcebb14bdd744e92d93b9c9199b90

Esse commit é de dois dias atrás, e eu ainda consigo reproduzir esse problema com os exemplos do meu último post.

3 curtidas

Obrigado pelo relatório muito detalhado, @tgxworld dará uma olhada rápida!

4 curtidas

@sam Eu sei do que se trata. Temos uma otimização de desempenho de busca em sites grandes, onde buscamos apenas em um índice parcial. Como a primeira postagem é muito antiga, ela fica de fora do índice parcial, e é por isso que não estamos vinculando a ela. Preciso pensar em uma solução para isso, pois as ideias que tenho atualmente ou trocam desempenho por precisão ou precisão por desempenho.

3 curtidas

Seria razoável (em termos de compensação de desempenho) se o primeiro post de cada tópico fosse incluído no índice? Ou talvez apenas o primeiro post de cada tópico se houver um post dentro do intervalo de tempo otimizado? Assumindo que esse último seja mesmo viável do ponto de vista de banco de dados.

3 curtidas

Isso é tecnicamente viável, mas é um problema enorme.

Tenho medo de que o trade-off de gastar, digamos, 1 semana com uma cuidadosa reordenação de índices possa não valer a pena ao corrigir isso.

Também consigo pensar em muitas situações atípicas que complicam isso (como um fórum com montanhas de tópicos curtos).

Vamos aguardar um pouco com isso e ver com que frequência isso aparece.

Uma mudança provisória que provavelmente podemos permitir no seu fórum é dobrar o tamanho do seu índice recente; isso é configurável (@tgxworld, talvez você possa fazer isso).

4 curtidas

Obrigado! Se você acha que é seguro fazer isso, seria ótimo!

3 curtidas

Isso já foi feito? Ao pesquisar o tópico mencionado anteriormente, agora vai para a postagem 523 em vez de 511, o que parece indicar que cada vez mais postagens estão ficando fora do alcance do índice.

2 curtidas

Oi, Sean, desculpe, não foi levantado.

Acabei de alterar (SiteSetting.search_recent_posts_size) para 250k; você tem apenas 163k tópicos. Levará alguns dias para que a alteração entre em vigor, pois é necessário que um agendamento seja executado.

4 curtidas

Acredito que as alterações já tenham entrado em vigor. Eu havia alterado para 1 milhão anteriormente, mas esqueci de publicar uma atualização aqui.

@sam, temos planos de resolver esse problema em algum momento? Incluir todas as primeiras postagens no índice parcial não parece uma má troca. Sei, por discussões anteriores, que @codinghorror acredita que a pesquisa deve priorizar fortemente os tópicos antes de permitir que as postagens dentro de um tópico apareçam.

3 curtidas