हाँ, आप नेवला>=3.8.9 में पूर्ण पाठ खोज का उपयोग कर सकते हैं। सबसे पहले, एक संग्रह में अधिकतम एक टेक्स्ट इंडेक्स हो सकता है (दस्तावेज़ देखें)। इसलिए, कई क्षेत्रों के लिए टेक्स्ट इंडेक्स को परिभाषित करने के लिए, आपको कंपाउंड इंडेक्स की आवश्यकता है:
schema.index({ animal: 'text', color: 'text', pattern: 'text', size: 'text' });
अब आप $text . का उपयोग कर सकते हैं क्वेरी ऑपरेटर इस तरह:
Model
.find(
{ $text : { $search : "text to look for" } },
{ score : { $meta: "textScore" } }
)
.sort({ score : { $meta : 'textScore' } })
.exec(function(err, results) {
// callback
});
यह प्रासंगिकता स्कोर के आधार पर परिणामों को भी क्रमबद्ध करेगा।
वज़न के लिए, आप वज़न विकल्प ऑब्जेक्ट को index()
. पर पास करने का प्रयास कर सकते हैं विधि (जहाँ आप कंपाउंड इंडेक्स को परिभाषित करते हैं) (कम से कम नेवले के v4.0.1 के साथ काम करना):
schema.index({ animal: 'text', color: 'text', pattern: 'text', size: 'text' }, {name: 'My text index', weights: {animal: 10, color: 4, pattern: 2, size: 1}});