Chúng ta có thể làm tính năng search đơn giản trong Rails sử dụng gem như "Ransack". Cách này tận dụng khả năng có sẵn của truy vấn SQL, phù hợp với các trang web nhỏ. Với các ứng dụng lớn, search server độc lập là một giải pháp tốt hơn. Bạn có thể:
Mặc dù các mã nguồn mở ngày nay đã trở nên dễ dàng tiếp cận hơn rất nhiều so với trước đây (cài đặt, tài liệu, cộng đồng, v.v.) nhưng đôi khi việc cài đặc khá là mất thời gian và phiền phức khi maintain. Trong trường hợp bạn có tiền, sử dụng cloud service là một lựa chọn hợp lý, lúc đó bạn chỉ cần tương tác với API, quên đi các vấn đề về bảo mật, lưu trữ,...
Cloud Service cho search luôn là một thử thách trong những năm gần đây vì phần lớn các giải pháp đưa ra đều khá nghèo nàn. Cloud Search của Amazon là một ví dụ điển hình. API và giao diện điều khiển phức tạp và thiếu hiệu quả.
Một dịch vụ realtime cloud search đang được quan tâm là Algolia.
Bạn có thể bắt đầu với việc đăng kí ở Algolia. Gói free của Algolia cho phép 1000 records và 50000 operation một tháng. Bạn có thể tạo nhiều app với free package.
Hướng dẫn chi tiết cho Algolia trên Rails có thể xem tại đây: https://devcenter.heroku.com/articles/algoliasearch
Hướng dẫn cho Live Search trên front end có thể xem tại đây: https://github.com/algolia/instant-search-demo
Một số lưu ý:
Không nên tạo Algolia search account từ Heroku addons vì search instance tạo ra sẽ có base region là US, latency cao. Hãy tạo app từ giao diện web của Algolia với region là Hongkong (Singapore latency cao hơn một chút) Mặc dù có thể config để tạo các index cho các môi trường cùng trên một search instance, việc này là không nên, hãy tạo các search instance khác nhau cho các môi trường khác nhau
Unpublished comment
Viết câu trả lời