Ya, Anda dapat menggunakan pencarian teks lengkap di Mongoose>=3.8.9. Pertama, koleksi dapat memiliki paling banyak satu indeks teks (lihat dokumen). Jadi, untuk menentukan indeks teks untuk beberapa bidang, Anda memerlukan indeks gabungan:
schema.index({ animal: 'text', color: 'text', pattern: 'text', size: 'text' });
Sekarang Anda dapat menggunakan $text operator kueri seperti ini:
Model
.find(
{ $text : { $search : "text to look for" } },
{ score : { $meta: "textScore" } }
)
.sort({ score : { $meta : 'textScore' } })
.exec(function(err, results) {
// callback
});
Ini juga akan mengurutkan hasil berdasarkan skor relevansi.
Untuk bobot, Anda dapat mencoba meneruskan objek opsi bobot ke index()
metode (di mana Anda menentukan indeks gabungan) (bekerja setidaknya dengan v4.0.1 dari luwak):
schema.index({ animal: 'text', color: 'text', pattern: 'text', size: 'text' }, {name: 'My text index', weights: {animal: 10, color: 4, pattern: 2, size: 1}});