27 pontos por xguru 2023-10-11 | 3 comentários | Compartilhar no WhatsApp
  • Extensão do Postgres baseada em Rust que melhora a busca Full-Text
  • Baseada no algoritmo BM25 (que calcula a pontuação de relevância dos resultados de busca), usado pelos mecanismos de busca modernos
  • A busca baseada em tsvector usada atualmente pelo Postgres tem dois problemas
    • Desempenho: a busca em tabelas grandes é lenta
    • Funcionalidade: não oferece suporte a busca difusa, ajuste de relevância nem pontuação de relevância BM25
  • O objetivo é fechar a lacuna entre os recursos de busca do Postgres e do ElasticSearch, para que não seja necessário adicionar um serviço como o ElasticSearch à stack de dados
  • Recursos do pg_bm25
    • 100% nativo do Postgres. Sem dependências externas
    • Baseado no Tantivy, uma alternativa ao Apache Lucene escrita em Rust
    • Em mais de 1 milhão de linhas, é 20x mais rápido que as funções padrão de busca/ordenação do Postgres, tsquery/ts_rank
    • Suporte a busca difusa, agregações, highlighting e ajuste de relevância
    • Pontuação de relevância usando o algoritmo BM25 utilizado pelo ElasticSearch
    • Busca em tempo real: novos dados podem ser pesquisados imediatamente, sem reindexação manual

3 comentários

 
secret3056 2023-10-13

Parece que ainda só oferece suporte a inglês, e na documentação dizem que o tokenizador chinese_compatible está em desenvolvimento.
Além disso, o tamanho da imagem Docker é bem grande. Quase 8 GB; considerando que a imagem oficial do Postgres não chega a 400 MB, fico me perguntando o que exatamente colocaram por cima disso...

 
cosine20 2023-10-13

Legal...!

 
wnswl 2023-10-11

Tomara que em breve tenha suporte em DBMSs gerenciados, como o RDS!