Busca com pontuação gera resultados inconsistentes

Por exemplo, pesquise it, it:, “it, it:”, “it, it:”,, "it, it:", ou it, it:”. Isso não traz esta publicação, embora ela contenha “it, it:” no texto.[1]

Além disso, ao pressionar o botão de pesquisa, as aspas “” são transformadas em "". Não gosto dessa experiência e não sei se é um bug.

Plataforma: Edge no Android, try.discourse.org, reproduzível no modo de segurança


  1. Caso seja excluída automaticamente: o conteúdo da publicação de teste é: It, “it, it:”, it, oandnxkwbs. ↩︎

Acho que it é uma palavra de parada que é excluída da busca. Você tentou reproduzir com uma palavra que não esteja nessa lista para verificar se o problema está relacionado à pontuação?
Are specific terms ignored from searches? - #5 by codinghorror

Não consigo mais reproduzi-lo de outra forma. Talvez o fórum em que vi o problema esteja usando uma versão desatualizada do Discourse.

Na verdade, acho que consigo reproduzir o problema novamente. Tente encontrar esta publicação pesquisando por we don't

E pesquisar por “just-use-interface{}/object; we don’t need generics” ou "just-use- interface{} / object ; we don't need generics" não encontra a publicação

Mas pesquisar por just-use- interface{} / object ; we don't need generics encontra

Sim, isso está correto… você não consegue pesquisar por it de jeito nenhum… se você tentar aqui, não obtém resultados. Palavras que provavelmente aparecem um número extremo de vezes (I, the, a, pronomes, etc.) são excluídas da indexação porque aparecem com tanta frequência que não fornecem uma diferenciação significativa.

o mesmo acontece aqui, we e don't (tecnicamente don e t) não são indexados

essa situação é um pouco diferente… para:

"just-use- interface{} / object ; we don't need generics"

isso nunca funcionará, as aspas solicitam uma correspondência exata e os espaços fazem com que não seja uma correspondência exata

no caso de pesquisar por:

"just-use-interface{}/object; we don't need generics"

o texto da postagem original contém uma aspas estilizada (don’t), mas a pesquisa remove essas aspas, então você nunca consegue retornar uma correspondência exata para isso… isso significa que postagens e pesquisa não são exatamente simétricas, o que talvez seja algo que pudesse ser melhorado

isso acontece porque, sem as aspas ao redor, você não está pesquisando por uma correspondência exata, então ele pega os termos “interface” “object” “need” “generics” e aquela postagem é a melhor correspondência para esses termos

Achei muito difícil encontrar os tópicos que eu estava procurando, mesmo usando palavras simples. É algo que já foi mencionado antes, e houve um experimento de integração com o Typesense há alguns anos.

Me pergunto se há planos reais de melhorar a função de busca do Discourse? É uma das ferramentas mais usadas, e acho que ela precisa de algumas refações e de mais atenção.

Talvez adicionar uma opção de “busca em texto simples”? Isso desativaria pegadinhas como aspas "".

E fiquei curioso: existe um motivo técnico para excluir termos como “we” e “don’t” (ou “don, t”) da indexação para busca? Será que é porque eles são muito comuns?

exatamente

Stop words são palavras muito comuns, que aparecem em quase todos os documentos e não possuem valor discriminativo. Portanto, podem ser ignoradas no contexto de busca em texto completo. Por exemplo, todo texto em inglês contém palavras como a e the, então não há utilidade em armazená-las em um índice.

PostgreSQL: Documentation: 18: 12.6. Dictionaries