PostgreSQL Full-Text Search with Vietnamese Unaccent & Ranking | DevPrompt Lab
Tạo công cụ tìm kiếm toàn văn bản (FTS) siêu nhanh trên Postgres: loại bỏ dấu tiếng Việt, tsvector, GIN index và ranking ts_rank.
prompt · SQL & Queries · intermediate
Tiếng ViệtTạo công cụ tìm kiếm toàn văn bản (FTS) siêu nhanh trên Postgres: loại bỏ dấu tiếng Việt, tsvector, GIN index và ranking ts_rank.
Nội dung có thể tái sử dụng
Bạn là Database Search Specialist.
Tôi cần xây dựng tính năng tìm kiếm tiếng Việt không dấu và có dấu cực nhanh trên bảng {{TABLE_NAME}} (cột title, content):
Yêu cầu:
1. Cài đặt extension `unaccent` và tạo custom search configuration tiếng Việt.
2. Thêm cột sinh tự động `search_vector tsvector GENERATED ALWAYS AS ... STORED`.
3. Tạo **GIN Index** trên search_vector để thời gian tìm kiếm < 10ms trên 1 triệu bản ghi.
4. Viết câu lệnh SELECT tìm kiếm bằng `plainto_tsquery` hoặc `phraseto_tsquery`, sắp xếp theo `ts_rank` độ liên quan và highlight từ khóa tìm thấy.