Tôi đang triển khai tìm kiếm toàn văn trong postgres.Có nên lưu trữ bộ tìm kiếm dữ liệu tìm kiếm trong cùng một bảng hoặc bảng ngoài không?
Tôi muốn tìm kiếm tất cả bài đăng trong hệ thống của mình. Chỉ mục toàn văn bài đăng là sự kết hợp của tiêu đề bài đăng và nội dung bài đăng.
Tôi có hai cách để đạt được điều này:
- tạo một cột tsvector trong bảng viết, kích hoạt cập nhật với nó.
- tạo bảng thứ hai (posts_search) với cột post_id và tsvector chứa dữ liệu chỉ mục.
- tạo ra một chỉ số gin đơn giản ... (trong số các câu hỏi, gây ra vấn đề thế giới thực của tôi cần dữ liệu trong nhiều bảng cho chỉ số)
gì đang xảy ra hoạt động tốt hơn, xem xét đôi khi tôi cần phải lọc tìm kiếm theo các thuộc tính khác trong bảng (như deleted_at is null
và cứ tiếp tục).
Đây có phải là cách tiếp cận tốt hơn để giữ cột tsvector trong cùng một bảng với dữ liệu (tác dụng phụ chọn * bây giờ hút) hay một bảng riêng (tác dụng phụ, tham gia bắt buộc, lọc chỉ mục phức tạp)?
một mối quan tâm nhỏ mặc dù là sử dụng lại chỉ mục, không chắc chắn về độ tinh vi của kế hoạch, tôi tự hỏi liệu nó có thể –