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

Tìm kiếm văn bản đầy đủ với trọng lượng trong mongoose

Có, bạn có thể sử dụng tìm kiếm toàn văn trong Mongoose> =3.8.9. Thứ nhất, một tập hợp có thể có nhiều nhất một chỉ mục văn bản (xem tài liệu). Vì vậy, để xác định chỉ mục văn bản cho một số trường, bạn cần chỉ mục kết hợp:

schema.index({ animal: 'text', color: 'text', pattern: 'text', size: 'text' });

Giờ đây, bạn có thể sử dụng $ text toán tử truy vấn như thế này:

Model
    .find(
        { $text : { $search : "text to look for" } }, 
        { score : { $meta: "textScore" } }
    )
    .sort({ score : { $meta : 'textScore' } })
    .exec(function(err, results) {
        // callback
    });

Điều này cũng sẽ sắp xếp kết quả theo điểm mức độ liên quan.

Đối với trọng số, bạn có thể thử chuyển đối tượng tùy chọn trọng số vào index() phương thức (nơi bạn xác định chỉ mục kết hợp) (hoạt động ít nhất với v4.0.1 của mongoose):

schema.index({ animal: 'text', color: 'text', pattern: 'text', size: 'text' }, {name: 'My text index', weights: {animal: 10, color: 4, pattern: 2, size: 1}});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chèn Khung dữ liệu gấu trúc vào mongodb bằng PyMongo

  2. pymongo.errors.CursorNotFound:id con trỏ '...' không hợp lệ tại máy chủ

  3. mongo - vấn đề kết nối ruby

  4. Moongoose tổng hợp $ trận đấu không khớp với id's

  5. Tổng hợp Mongo với dữ liệu được phân trang và tổng số