Ngôn ngữ gốc trong tìm kiếm văn bản sử dụng một thuật toán để cố gắng liên kết các từ bắt nguồn từ một cơ sở chung (ví dụ:"running" phải khớp với "run"). Điều này khác với đối sánh tiền tố (ví dụ:đối sánh "blue" với "blueberry") mà bạn muốn triển khai cho tính năng tự động hoàn thành.
Để sử dụng hiệu quả nhất typeahead.js
với tìm kiếm văn bản MongoDB, tôi khuyên bạn nên tập trung vào prefetch
hỗ trợ trong lỗi đánh máy:
-
Tạo
keywords
bộ sưu tập có các từ phổ biến (có thể với tần suất sử dụng) được sử dụng trong bộ sưu tập của bạn. Bạn có thể tạo bộ sưu tập này bằng cách chạy Bản đồ / Rút gọn trên toàn bộ bộ sưu tập, bạn có chỉ mục tìm kiếm văn bản và cập nhật danh sách từ bằng cách sử dụng Bản đồ gia tăng / Giảm bớt khi các tài liệu mới được thêm vào. -
Yêu cầu ứng dụng của bạn tạo tài liệu JSON từ
keywords
tập hợp với các từ khóa duy nhất (có thể giới hạn ở các từ khóa "phổ biến" dựa trên tần suất từ để giữ cho danh sách có thể quản lý được / có liên quan).
Sau đó, bạn có thể sử dụng các từ khóa được tạo JSON để tự động hoàn thành phía máy khách với prefetch
của typeahead tính năng:
$('.mysearch .typeahead').typeahead({
name: 'mysearch',
prefetch: '/data/keywords.json'
});
typeahead.js
sẽ cache prefetch
Dữ liệu JSON trong localStorage cho các tìm kiếm phía máy khách. Khi biểu mẫu tìm kiếm được gửi, đơn đăng ký của bạn có thể sử dụng MongoDB phía máy chủ tìm kiếm văn bản
để trả về kết quả đầy đủ theo thứ tự mức độ liên quan.