- PostgreSQL cung cấp các thành phần để tự xây dựng một công cụ tìm kiếm
- Các thành phần chính gồm kiểu dữ liệu
tsvector và tsquery, toán tử khớp @@, các hàm xếp hạng kết quả khớp và kiểu chỉ mục GIN
tsvector lưu trữ từ vựng đã được chuẩn hóa và vị trí của chúng trong văn bản gốc
tsquery biểu diễn truy vấn đã được chuẩn hóa và có thể kết hợp nhiều thuật ngữ bằng các toán tử logic
- Kiểu chỉ mục GIN được dùng để truy vấn
tsvector hiệu quả
ts_rank và ts_rank_cd là các hàm xếp hạng có xét đến tần suất thuật ngữ và độ gần nhau
- Có thể tùy biến kết quả tìm kiếm theo các tiêu chí cụ thể bằng cách điều chỉnh độ liên quan
- Có thể thêm các hệ số tăng cường cho số, ngày tháng và giá trị chính xác vào điểm xếp hạng
- Có thể gán trọng số cho các cột để ưu tiên một số thuật ngữ nhất định trong kết quả tìm kiếm
- Dùng
setweight cho cột tiêu đề sẽ cải thiện thứ hạng của các tiêu đề phim có chứa từ "jedi"
- PostgreSQL không trực tiếp hỗ trợ tìm kiếm mờ hoặc chấp nhận lỗi gõ, nhưng có thể triển khai bằng độ tương tự hoặc khoảng cách Levenshtein
- Tìm kiếm theo facet, giúp người dùng thu hẹp phạm vi tìm kiếm, có thể được triển khai trong PostgreSQL bằng cách định nghĩa danh mục hoặc dùng thuật toán
- Bài viết kết lại bằng việc đề cập rằng phần 2 sẽ đi sâu so sánh chi tiết với Elasticsearch
1 bình luận
Ý kiến Hacker News