- 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
Parece que ainda só oferece suporte a inglês, e na documentação dizem que o tokenizador
chinese_compatibleestá 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...
Legal...!
Tomara que em breve tenha suporte em DBMSs gerenciados, como o RDS!