- Tiện ích mở rộng Postgres dựa trên Rust giúp cải thiện Full-Text Search
- Dựa trên thuật toán BM25 mà các công cụ tìm kiếm hiện đại sử dụng để tính điểm độ liên quan của kết quả tìm kiếm
- Tìm kiếm dựa trên
tsvector mà Postgres hiện đang sử dụng có 2 vấn đề
- Hiệu năng: tìm kiếm chậm trên các bảng lớn
- Tính năng: không hỗ trợ tìm kiếm mờ, tinh chỉnh độ liên quan hoặc các tác vụ như điểm độ liên quan BM25
- Mục tiêu là thu hẹp khoảng cách về tính năng tìm kiếm giữa Postgres và ElasticSearch để không cần phải đưa thêm một dịch vụ như ElasticSearch vào data stack
- Các tính năng của
pg_bm25
- 100% Postgres native, không có phụ thuộc bên ngoài
- Dựa trên Tantivy, giải pháp thay thế Apache Lucene được xây dựng bằng Rust
- Nhanh hơn 20 lần so với
tsquery/ts_rank, các hàm tìm kiếm/sắp xếp mặc định của Postgres, với hơn 1 triệu row
- Hỗ trợ tìm kiếm mờ, aggregation, highlighting và tinh chỉnh độ liên quan
- Điểm độ liên quan sử dụng thuật toán BM25 mà ElasticSearch dùng
- Tìm kiếm thời gian thực: dữ liệu mới có thể được tìm thấy ngay mà không cần reindex thủ công
3 bình luận
Có vẻ hiện tại vẫn chỉ hỗ trợ tiếng Anh, và trong tài liệu có nói tokenizer
chinese_compatibleđang được phát triển.Ngoài ra kích thước image Docker cũng khá lớn. Gần 8GB, trong khi image Postgres thuần còn chưa tới 400MB, nhìn vậy thì đúng là không biết họ đã chất thêm những gì lên trên nữa...
Hay đấy...!
Mong là sớm được hỗ trợ trên các DBMS được quản lý như RDS!