Bạn có thể làm điều này bằng cách tạo một chỉ mục thứ hai trong cụm ES của bạn. Khi người dùng gửi tìm kiếm thông qua ứng dụng của bạn, bạn thực hiện hai bước.
- Gửi tìm kiếm dưới dạng truy vấn tới Elasticsearch để có hành vi tìm kiếm bình thường.
- Gửi yêu cầu lập chỉ mục tới cụm với các cụm từ tìm kiếm mà người dùng đã cung cấp.
Với chỉ mục thứ hai của tất cả các cụm từ tìm kiếm đã được gửi, bạn có thể thực hiện một số việc gọn gàng. Đối với trường hợp của bạn, bạn có thể có trường 'đếm' giống như trong SQL mà bạn tăng lên khi nhiều người tìm kiếm cụm từ đó. Một trường hợp sử dụng tuyệt vời khác là một điều khoản được đề xuất theo phong cách google. Giao diện người dùng của bạn có thể gửi yêu cầu tìm kiếm với văn bản đã nhập trên mỗi lần nhấn phím và điền vào danh sách thả xuống với các lần truy cập từ các cụm từ đã tìm kiếm trước đó. Bạn thậm chí có thể cá nhân hóa điều này bằng cách thêm trường người dùng và lọc ra các kết quả không phải từ người dùng cụ thể đó.
Điều cần lưu ý là ElasticSearch có thể được sử dụng như một kho lưu trữ dữ liệu chính và phụ. Tôi luôn khuyên bạn chỉ nên giữ dữ liệu bạn muốn mất (như lịch sử tìm kiếm) làm dữ liệu chính. Giữ dữ liệu quan trọng của hệ thống của bạn trong một kho lưu trữ dữ liệu truyền thống hơn như SQL, theo cách đó, bạn có thể dễ dàng sao lưu và khôi phục nếu có bất kỳ điều gì xảy ra!