Feedback sobre nosso experimento de busca instantânea

Recentemente, embarcamos em um experimento de dois meses para prototipar uma nova experiência de busca no Discourse.

Por favor, teste em https://meta.discourse.org/instant-search

:speaking_head: Se você quiser conversar sobre sua experiência, sinta-se à vontade para agendar um bate-papo por chamada Agradecemos qualquer feedback :pray:

Funcionalidades

  • Busca rápida

  • Capacidade de buscar tópicos, posts, mensagens de chat e usuários

    • Resultados de Posts e Tópicos incluem Mensagens Privadas
    • Mensagens de Chat incluem canais privados e DMs
  • Filtros baseados em UI para coisas como tags, categorias, usuários, caixas de entrada, canais, etc.

  • Modos de busca por Palavra-chave, Semântica, Híbrida e HyDE

FAQ

A busca para de funcionar depois de um tempo na página

De fato para; por favor, atualize.

Não suporta nossa gramática de busca, como @usuário ou #categoria

De fato não suporta, mas é algo que pode ser facilmente adicionado se decidirmos lançar isso.

O fato de a busca de Tópicos e Posts serem distintas é uma escolha estranha

Posso entender o porquê, especialmente se você está acostumado com o funcionamento da busca do Discourse na última década. Se decidirmos lançar isso, poderíamos construir um modo que faça ambos ao mesmo tempo, ou até mesmo simplesmente executar ambos e mostrá-los na UI. Pelas restrições deste experimento, esta foi a maneira mais fácil de abordar ambos os casos de uso de:

  • Eu sei que este tópico existe e só quero encontrá-lo (Busca de Tópico)
  • Eu quero pesquisar qualquer ocorrência desta consulta (Busca de Post)

A qualidade dos resultados ainda não está boa

Mal tocamos no que é possível aqui; no momento, priorizamos apenas categorias e atribuímos pesos ao título e ao corpo. Isso precisaria de ajustes adicionais para corresponder ao refinamento que temos na busca existente, mas também traz a possibilidade de ir além. Infelizmente, muito é controlado via API JS, e a biblioteca que estamos usando nos limitou bastante aqui.

Semântica / HyDE / Híbrida são lentas

Adicionamos um debounce maior a elas para contornar alguns incômodos na biblioteca JS que estamos usando. Se decidirmos lançar isso, esta biblioteca JS é a primeira na lista de demissão. Quanto à velocidade geral delas, dependem de duas requisições, a primeira para embeddings, que está rodando em hardware antigo na AWS, e isso não ajuda. Poderíamos também injetar embeddings no proxy middleware para reduzir a latência. Novamente, restrições de tempo do experimento.

Detalhes técnicos

  • Este experimento está usando Typesense, um clone open-source do Algolia. Ele está rodando em uma instância EC2 no mesmo local de todo o resto no hosting do Meta.

  • O front-end não requisita diretamente do Typesense; em vez disso, todas as chamadas são proxied via app Discourse, usando um middleware Rack.

  • A barra de busca / resultados / refinamentos está usando InstantSearchJS encapsulado em EmberJS. Infelizmente, esta biblioteca causou muitos problemas, e não a usaremos se lançarmos isso.

  • O servidor está usando 7.35 GB de RAM para indexar todo o Meta. Apenas tenha em mente que a maior parte disso é por causa dos embeddings; seria menos de 2 GB sem embeddings.

18 curtidas

Isso parece ótimo. Você pode colocá-lo em algum lugar, como na barra lateral?

6 curtidas

Como a AWS é mencionada, pergunto-me se alguns dos recursos da AWS Q seriam um caminho rápido e sustentável para melhorar a busca?

2 curtidas

Isto parece ótimo! Em termos de velocidade, é incrível.

Parece que não corresponde parcialmente às palavras no título.

Por exemplo, estou procurando o tópico: Objects type for theme setting.
Se eu não fornecer um s para object, ele não encontra o tópico.

5 curtidas

A opção de palavra-chave é literal, para correspondências mais flexíveis você pode tentar semântica (que procura por significado semelhante) ou modo híbrido (que faz uma mistura de ambos):

Eu acho que se fôssemos continuar com este plugin, faria sentido usar o modo híbrido como padrão porque as pessoas não estão realmente familiarizadas em alternar tipos de pesquisa como este.

7 curtidas

Eu dei uma rápida tentativa e acho promissor. Nos últimos dias, procurei pelo tópico da barra de administração experimental e pelo tópico de restauração de backups pela linha de comando. No primeiro caso, demorou um pouco para encontrá-lo nos resultados da pesquisa, no segundo caso, acabei procurando em meus favoritos. Mas a nova pesquisa traz ambos e é muito mais rápida que a antiga. Então, definitivamente uma melhoria para mim :+1:

4 curtidas

Interessante, mal posso esperar para explorar mais! Parece promissor até agora!

Será que algo assim poderá eventualmente substituir totalmente a função de pesquisa? Além disso, esta ferramenta servirá como um complemento à ferramenta de pesquisa atual na barra de ferramentas superior?

3 curtidas

É muito legal. Terá uma opção de autocompletar para celular como o Elasticsearch?

3 curtidas

Obrigado, mas foi falha minha.
Na verdade, eu nem vi uma lista suspensa, embora o primeiro post falasse sobre os modos. :derp:

Agora faz sentido :+1:.

Concordo. Não consigo me lembrar de um site onde precisei mudar o modo de pesquisa.
Como usuário, espero um modo padrão que funcione bem na maioria das situações.


Os filtros dinâmicos avançados são realmente incríveis! Será super útil para refinar pesquisas rapidamente.

No geral, muito bom trabalho, equipe :clap:; vou experimentar mais.

5 curtidas

Este experimento foi feito para pesquisar a viabilidade de reconstruir nossa busca do zero e quais são as desvantagens dessa nova abordagem. Embora seja muito cedo para dizer, se a nova experiência de busca for bem recebida o suficiente, ela poderá ser considerada para integração em muitos recursos de busca do Discourse, seja a busca em página inteira, a busca inline no cabeçalho, a busca de tópicos semelhantes para Tópicos Relacionados, menções de usuários, autocompletar de hashtags, etc.

Isso é facilmente factível com esta tecnologia, tanto no mobile quanto no desktop, muito parecido com a interface de busca do Google.

Os modos existem apenas para o experimento, para que as pessoas possam comparar e testar facilmente. Se isso fosse lançado, os modos provavelmente se tornariam uma opção de administrador, em vez de algo voltado para o usuário.

10 curtidas

Adorei que é rápido!

Também gosto do experimento /filter e da forma como ele apresenta todas as minhas opções de filtro. Parece que há algumas direções exploradas em relação à localização de conteúdo. Isso se complementará?

O que realmente simplificaria as coisas para mim se houvesse uma linguagem comum no final, para que, como usuário, eu tivesse um entendimento direto de:

  • o que é uma Busca? O que é um Filtro?
  • como reconheço cada um na interface, onde devo esperar encontrá-los?
  • quando me é apresentado um conjunto simples/comum de filtros? Como acesso/expando o conjunto completo?
3 curtidas

Se enviado, o backend para pesquisa instantânea alimentaria /filter. É basicamente a mesma coisa que já estamos fazendo na pesquisa de Tópicos nesta experiência.

3 curtidas

Se não se importa que eu pergunte, para contexto e para que eu saiba exatamente o que procurar ao testar:

  • O que está errado com a pesquisa atual hoje que você está procurando mudar ou melhorar?
  • O que estamos avaliando aqui além da velocidade?
  • Se você decidir reconstruir a pesquisa do zero, há alguma chance de a pesquisa do Discourse pesquisar em outros locais de conteúdo? por exemplo, documentação não hospedada dentro do Discourse?
3 curtidas

Aqui estão alguns problemas comuns ao longo dos anos:

  1. Há muitas reclamações sobre nossa pesquisa não encontrar o que as pessoas procuram, especialmente para o caso de uso de
  1. A pesquisa do Discourse não lida com erros de digitação.
  2. A má experiência do desenvolvedor na pesquisa existente a torna um cidadão de segunda classe, como o chat ainda não ser pesquisável.
  3. A má experiência do usuário na pesquisa para pesquisar MPs.
4 curtidas

:bangbang: Eu também tenho uma longa lista, mas queria ter certeza de que viria com perguntas e entendimento antes de insistir :joy:

Estou muito feliz em ver a consideração pela melhoria. FWIW, embora ainda precise de trabalho, nos dizem constantemente o quanto nossos usuários amam nossa busca (também conhecida como busca do Discourse) quando a comparam com outras experiências de busca que eles têm, mesmo com suas peculiaridades.

Como uma função de força, minha equipe está usando exclusivamente (pelo menos entre nossa própria equipe) o Discourse exclusivamente para se comunicar. Este foi o primeiro pedido de um dos membros da minha equipe hoje:

Aqui estão alguns que me vêm à mente inicialmente:

  • Melhor busca de MPs
  • Busca de chat
  • A capacidade de buscar (ou estender a busca) fora do site seria ótima. Muitas comunidades não param nas portas do Discourse.
  • Como você mencionou, buscas de strings exatas às vezes retornam um comportamento estranho
5 curtidas

Esta é uma coisa que consideramos muito ao experimentar uma solução pronta para uso como o Typesense. Tornaria muito mais fácil estender nossa pesquisa para “documentos” externos, permitindo que os clientes injetem documentos em nosso banco de dados ou permitindo que o front-end consuma de outras instâncias que sigam algumas diretrizes para serem compatíveis.

Ainda bem que acertamos essas duas logo de cara com o experimento! Obrigado pelo feedback.

3 curtidas

Apenas para informar, desativamos temporariamente este experimento. Ele deve voltar em breve. :crossed_fingers: :slight_smile:

7 curtidas

Voltou :eyes:

4 curtidas

Além das suas respostas aqui, estou tentando conduzir algumas entrevistas curtas de pesquisa de usuário para entender melhor como você usa a nova pesquisa instantânea

  • Obter seu feedback qualitativo geral - o que você gostou/não gostou/mudaria/gostaria de ver no futuro
  • Como a experiência se compara à nossa pesquisa atual
  • Ver você em ação usando a nova pesquisa

Minhas DMs estão abertas se as pessoas estiverem dispostas a conversar por chamada! Agradeço qualquer feedback :pray:

6 curtidas

Outra pequena pausa :palm_tree: Volto logo. :slight_smile:

2 curtidas