Tìm kiếm văn bản với text index và $text
MongoDB hỗ trợ tìm kiếm toàn văn (full-text search) bằng cách tạo text index và dùng toán tử $text với $search.
Tạo dữ liệu
> db.demo331.insertOne({"Words": "This is a MySQL"});
> db.demo331.insertOne({"Words": "THIS is a MongoDB"});
Tạo text index
> db.demo331.createIndex({ Words: "text" });
Tìm kiếm "MySQL"
> db.demo331.find({ $text: { $search: "MySQL" } });
Kết quả
{ "_id": ObjectId("..."), "Words": "This is a MySQL" }
Tính năng nâng cao:
- Tìm cụm từ chính xác:
$search: "\"MySQL database\"" - Loại trừ từ:
$search: "MySQL -MongoDB" - Sắp xếp theo độ liên quan:
{ score: { $meta: "textScore" } } - Hiển thị điểm:
{ score: { $meta: "textScore" } }trong projection
Lưu ý: Chỉ được tạo một text index trên một collection.