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.
- 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.
- 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.