- Mejora la búsqueda de texto completo con una extensión de Postgres basada en Rust
- Basada en el algoritmo BM25 que usan los motores de búsqueda modernos (calcula la puntuación de relevancia de los resultados)
- La búsqueda actual de Postgres basada en
tsvector tiene dos problemas
- Rendimiento: la búsqueda es lenta en tablas grandes
- Funcionalidad: no soporta búsqueda difusa, ajuste de relevancia ni puntuaciones de relevancia BM25
- El objetivo es cerrar la brecha entre las funciones de búsqueda de Postgres y ElasticSearch, para que no sea necesario incorporar un servicio como ElasticSearch al stack de datos
- Funcionalidades de
pg_bm25
- 100% nativo de Postgres. Sin dependencias externas
- Basado en Tantivy, una alternativa a Apache Lucene escrita en Rust
- 20 veces más rápido que
tsquery/ts_rank, las funciones de búsqueda/ordenamiento predeterminadas de Postgres, con más de 1 millón de filas
- Soporta búsqueda difusa, agregaciones, resaltado y ajuste de relevancia
- Puntuación de relevancia con el algoritmo BM25 que usa ElasticSearch
- Búsqueda en tiempo real: los datos nuevos se pueden buscar de inmediato sin reindexación manual
3 comentarios
Parece que por ahora solo soporta inglés, y en la documentación dicen que el tokenizador
chinese_compatibleestá en desarrollo.Además, el tamaño de la imagen de Docker es bastante grande. Casi 8 GB; considerando que la imagen oficial de Postgres no llega ni a 400 MB, uno se pregunta qué diablos le metieron encima...
Está bueno...!
Ojalá pronto lo admitan en DBMS administrados como RDS.