27 puntos por xguru 2023-10-11 | 3 comentarios | Compartir por WhatsApp
  • 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

 
secret3056 2023-10-13

Parece que por ahora solo soporta inglés, y en la documentación dicen que el tokenizador chinese_compatible está 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...

 
cosine20 2023-10-13

Está bueno...!

 
wnswl 2023-10-11

Ojalá pronto lo admitan en DBMS administrados como RDS.