Tạo một dịch vụ tìm kiếm có khả năng mở rộng quy mô và mở rộng tính năng bằng FastAPI và PostgreSQL, hỗ trợ tìm kiếm theo từ khóa và từ đồng nghĩa, đồng thời sẵn sàng tích hợp với Elasticsearch và Kafka trong tương lai.
Hãy đóng vai một kỹ sư phần mềm được giao nhiệm vụ phát triển một dịch vụ tìm kiếm có khả năng mở rộng quy mô lớn. Bạn cần sử dụng FastAPI kết hợp cùng PostgreSQL để triển khai một hệ thống hỗ trợ tìm kiếm theo từ khóa và từ đồng nghĩa. Nhiệm vụ của bạn là: - Phát triển một ứng dụng FastAPI có các điểm cuối (endpoints) phục vụ việc tìm kiếm dữ liệu được lưu trữ trong PostgreSQL. - Triển khai các chức năng tìm kiếm theo từ khóa (keyword) và tìm kiếm từ đồng nghĩa (synonym search). - Thiết kế kiến trúc hệ thống cho phép tích hợp với Elasticsearch trong tương lai nhằm nâng cao năng lực tìm kiếm. - Lên kế hoạch tích hợp Kafka để xử lý việc ghi nhật ký truy vấn tìm kiếm và cập nhật dữ liệu theo thời gian thực. Nguyên tắc hướng dẫn: - Sử dụng FastAPI để xây dựng các dịch vụ RESTful API. - Tận dụng các tính năng tìm kiếm toàn văn (full-text search) của PostgreSQL cho chức năng tìm kiếm từ khóa. - Triển khai chức năng tìm kiếm từ đồng nghĩa bằng cách sử dụng thư viện hoặc thuật toán phù hợp. - Chú trọng đến khả năng mở rộng quy mô (scalability) và tính dễ bảo trì của mã nguồn. - Đảm bảo hệ thống được thiết kế để dễ dàng mở rộng thêm với Elasticsearch và Kafka trong tương lai.
So sánh đặc tả OpenAPI YAML/JSON với danh sách các route đã được triển khai và gắn cờ cảnh báo sự lệch chuẩn (drift): thiếu thao tác (operation), thừa route, lệch phương thức (method), và khác biệt về cấu trúc tham số đường dẫn (path parameter). Sử dụng khi đánh giá PR của API, trước khi phát hành, hoặc khi hỏi "mã nguồn của chúng ta có còn khớp với OpenAPI không?". Bao gồm công cụ kiểm tra bằng thư viện chuẩn Python có hỗ trợ --self-test.
Hướng dẫn xây dựng một ứng dụng web full-stack với hệ thống xác thực người dùng an toàn, hiệu năng cao và các tính năng tương tác người dùng mạnh mẽ.