12 pontos por xguru 2020-10-29 | 2 comentários | Compartilhar no WhatsApp
  • Por que a OkCupid escolheu o Vespa como mecanismo de busca open source

  • No dating, é preciso mudar em tempo real o ranking das recomendações de pares, mas o sistema de matching existente tinha dificuldade para refletir rapidamente o estado do usuário, que muda o tempo todo

  • O ElasticSearch não oferece suporte a atualizações parciais em memória

→ Os documentos são em sua maioria estáticos, mas as informações do usuário (likes, conexões/passagens com pessoas, mensagens) mudam dinamicamente o tempo todo

  • Vespa: mecanismo de busca open source para big data (otimizado para serving, mais do que para análise de dados)

→ Suporta atualizações parciais em memória sem precisar reindexar o documento inteiro (40~50K atualizações por segundo por nó)

→ Oferece um framework de ranking flexível que pode ser processado no momento da consulta

→ Integração direta com modelos de machine learning como TensorFlow

→ Em chamadas REST, permite consultas usando YQL (Yahoo Query Language)

→ Permite customizar a lógica usando componentes Java

→ Em termos de escalabilidade, não é preciso se preocupar com shards. Sempre que nós são adicionados/removidos, os dados são restaurados automaticamente e redistribuídos a partir das réplicas

  • O Vespa se encaixa melhor internamente na OkCupid

→ A OkCupid faz o matching de pessoas integrando diversos tipos de informação sobre os usuários

→ Há mais de 100 filtros e mais de 100 critérios de ordenação, e eles continuam aumentando, então o Vespa é adequado para dar suporte a esse workflow

→ A escrita de dados e as consultas também são semelhantes ao sistema de matching existente

→ O framework de ranking é muito mais flexível e intuitivo

→ Comparado à estrutura de consultas estranha do ElasticSearch, o poder de expressão do YQL é superior

→ O recurso de distribuição automática de dados é adequado para equipes pequenas

2 comentários

 
xguru 2020-11-01

Um texto introdutório em coreano sobre a história e o valor do Vespa

Yahoo Vespa de código aberto https://web.archive.org/web/20210922122357/…
( Em 2023, como o blog saiu do ar, substituí pelo link do Wayback Machine )

"Vespa também é o nome de uma marca de scooters, mas é a sigla de Vertical Search Plaform"
"Entre as tecnologias centrais do Yahoo que pareciam daquelas que eles jamais revelariam, uma das que sempre era mencionada e figurava facilmente entre as cinco principais era o Vespa"
"Vespa é um conjunto de componentes de uma plataforma integrada de processamento de conteúdo centrada em um mecanismo de busca. Em termos simples, pode ser visto como um mecanismo de busca, mas, em comparação com mecanismos de busca comuns como Solr ou Elastic, ele tem muito mais componentes auxiliares ao redor."

 
xguru 2020-10-29

O texto é bem longo, mas a parte final mostra desde a arquitetura do sistema da OkCupid, que de fato aplicou o Vespa, até as consultas de busca (YQL), então vale consultar o artigo original.

Como também é mencionado no fim do texto, o ElasticSearch é muito mais usado, e a desvantagem do Vespa é que sua comunidade ainda não é tão grande.

Mas, como dá para ver aqui, em buscas que precisam mudar continuamente, o Vespa também pode ser uma ótima alternativa.

O exemplo foi de correspondência de parceiros para namoro, mas as buscas em e-commerce hoje em dia também precisam mudar em tempo real para entregar bons resultados.