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.

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.