tìm kiếm văn bản tính năng trong MongoDB (như tại 2.6) không có bất kỳ tính năng tích hợp nào để đối sánh chuỗi mờ / một phần. Như bạn đã lưu ý, trường hợp sử dụng hiện tập trung vào hỗ trợ ngôn ngữ và gốc với các toán tử boolean cơ bản và đối sánh từ / cụm từ.
Có một số cách tiếp cận có thể để xem xét đối với đối sánh mờ tùy thuộc vào yêu cầu của bạn và cách bạn muốn đủ điều kiện "hiệu quả" (tốc độ, bộ nhớ, thời gian dành cho nhà phát triển, cơ sở hạ tầng cần thiết, v.v.):
-
Triển khai hỗ trợ đối sánh mờ / từng phần trong logic ứng dụng của bạn bằng cách sử dụng một số thuật toán tương tự và tương tự âm thanh có sẵn. Lợi ích của phương pháp này bao gồm không phải thêm bất kỳ cơ sở hạ tầng bổ sung nào và có thể điều chỉnh chặt chẽ để phù hợp với yêu cầu của bạn.
Để biết thêm một số ví dụ chi tiết, hãy xem: Hiệu quả Các kỹ thuật đối sánh Mờ và Đối sánh từng phần trong MongoDB .
-
Tích hợp với công cụ tìm kiếm bên ngoài cung cấp các tính năng tìm kiếm nâng cao hơn. Điều này làm tăng thêm một số phức tạp cho việc triển khai của bạn và có thể quá mức cần thiết chỉ đối với lỗi đánh máy, nhưng bạn có thể tìm thấy các tính năng tìm kiếm khác mà bạn muốn kết hợp ở những nơi khác trong ứng dụng của mình (ví dụ:"như thế này", từ gần, tìm kiếm theo từng khía cạnh, ..).
Ví dụ:hãy xem: Cách thực hiện Phù hợp mờ với Trình kết nối Mongo và Tìm kiếm đàn hồi . Lưu ý: truy vấn mờ dựa trên khoảng cách Levenshtein.
-
Sử dụng thư viện tự động hoàn thành như mã nguồn mở của Twitter
typeahead.js
, bao gồm công cụ đề xuất và API truy vấn / bộ nhớ đệm. Typeahead thực sự bổ sung cho bất kỳ cách tiếp cận phụ trợ nào khác và công cụ đề xuất (tùy chọn) của nó Bloodhound hỗ trợ tìm nạp trước cũng như lưu trữ dữ liệu vào bộ nhớ đệm trong bộ nhớ cục bộ.