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

Làm thế nào để tìm sự tương tự trong trường tài liệu MongoDB?

Nếu bạn cần tính toán độ giống nhau của văn bản trên about , một cách để đạt được điều này là sử dụng chỉ mục văn bản .

Ví dụ (trong mongo shell), nếu bạn tạo một chỉ mục văn bản trên about lĩnh vực:

db.collection.createIndex({about: 'text'})

bạn có thể thực hiện một truy vấn chẳng hạn như (ví dụ được lấy từ https://docs.mongodb.com/manual/reference/operator/query/text/#sort-by-text-search-score ):

db.collection.find({$text: {$search: 'similarity in comparison'}}, {score: {$meta: 'textScore'}}).sort({score: {$meta: 'textScore'}})

Với các tài liệu mẫu của bạn, truy vấn sẽ trả về một cái gì đó như:

{
  "_id": "foobar1",
  "about": "similarity in comparison",
  "score": 1.5
}
{
  "_id": "foobar2",
  "about": "perfect similarity in comparison",
  "score": 1.3333333333333333
}
{
  "_id": "foobar3",
  "about": "partial similarity",
  "score": 0.75
}

được sắp xếp theo điểm tương tự giảm dần. Xin lưu ý rằng không giống như kết quả mẫu của bạn, tài liệu foobar4 không được trả lại vì không có từ nào được truy vấn có trong foobar4 .

Chỉ mục văn bản được coi là một loại chỉ mục đặc biệt trong MongoDB và do đó đi kèm với một số quy tắc cụ thể về cách sử dụng nó. Để biết thêm chi tiết, vui lòng xem:




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tính nguyên tử, cô lập và đồng thời trong MongoDB

  2. NODE.JS:FATAL ERROR- JS Phân bổ không thành công - xử lý hết bộ nhớ trong khi phân tích cú pháp các tệp excel lớn

  3. Mongoose:mpromise (thư viện lời hứa mặc định của mongoose) không được dùng nữa

  4. Hiển thị tất cả dữ liệu đến từ mongodb và hiển thị nó trong công cụ tạo mẫu doT.js

  5. Làm cách nào để tải dữ liệu ban đầu trong MongoDB?