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: