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

Chỉ mục tìm kiếm toàn văn bản trong MongoDB:error:too many text index for, why?

MongoDB chỉ cho phép một chỉ mục văn bản cho mỗi bộ sưu tập.

Nhưng bạn có thể sử dụng một chỉ mục văn bản bao gồm nhiều trường:

db.collection.ensureIndex( {
    description: "text",
    title: "text"
} );

Bằng cách đó, bạn sẽ nhận được kết quả khi tìm thấy cụm từ bạn đang tìm kiếm. Khi đây không phải là điều bạn muốn, chẳng hạn như khi bạn có hai truy vấn tìm kiếm mà mỗi truy vấn trả về kết quả từ một trong các trường nhưng không trả về trường kia, bạn có hai tùy chọn.

  1. sử dụng chỉ mục văn bản nhiều trường, nhưng loại bỏ các kết quả đến từ trường không chính xác trên lớp ứng dụng.
  2. trích xuất một trong hai trường vào một bộ sưu tập khác. Các tài liệu trong bộ sưu tập đó có thể chứa bản sao đầy đủ, bản sao được biên dịch lại hoặc chỉ trường bạn lập chỉ mục và _id của tài liệu gốc.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sắp xếp mongodb theo thuật toán xếp hạng reddit

  2. lựa chọn khác biệt trong lithium

  3. MongoDB - Mang chứng chỉ SSL của riêng bạn

  4. $ unionWith - Tương đương của MongoDB với UNION ALL

  5. Mongoose - Xác định lại cấu trúc lược đồ