MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tìm kiếm toàn văn bản trong MongoDB + cách giải quyết cho khớp một phần từ

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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tạo tập hợp bộ lọc vào mùa xuân

  2. PyMongo $ inc đang gặp sự cố

  3. Làm thế nào để thêm định nghĩa của macro trong cmake?

  4. mongoose cập nhật một trường trong MongoDB không hoạt động

  5. Cách chính xác để lập chỉ mục trong MongoDB là gì khi tồn tại sự kết hợp lớn của các trường