$text (البحث النصي الكامل)

آخر تحديث: 2026-10-09

$text (البحث النصي الكامل)

يُجري $text بحثًا نصيًا كاملًا على الحقول المغطاة بفهرس نصي. `{ $text: { $search: 'coffee shop' } }`. أنشئ فهرسًا نصيًا أولًا (db.collection.createIndex({ content: 'text' }))؛ يمكن للمجموعة أن تملك فهرسًا واحدًا على الأكثر. يطبق استخلاص الجذور وإزالة الكلمات الشائعة، ويدعم البحث بالعبارات بين علامتي اقتباس، ويوفر درجة ملاءمة عبر $meta: 'textScore'.

الفئةالعنصر والتقييم
إصدار MongoDB2.6+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ $text: { $search: <string>, $language: <language>, $caseSensitive: <boolean> } }

⚙️ المعلمات

searchالكلمات المفتاحية أو العبارة المراد البحث عنها.
languageاختياري؛ لغة تجذيع الكلمات (stemming).
caseSensitiveاختياري؛ ما إذا كان البحث يراعي حالة الأحرف.

القيمة المرجعة:مؤشر المستندات المطابقة

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// $text: بحث نصي كامل عن coffee shop
// يتطلب فهرسًا نصيًا أولًا
db.articles.find({ $text: { $search: 'coffee shop' } })

// الترتيب حسب الملاءمة (textScore)
db.articles.find(
  { $text: { $search: 'coffee' } },
  { score: { $meta: 'textScore' } }
).sort({ score: { $meta: 'textScore' } })

المخرجات:

// يُرجع المقالات المطابقة لجذور الكلمتين coffee/shop؛ الاستعلام الثاني يرتب حسب الملاءمة

📌 ملاحظات

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qماذا يجب أن أفعل قبل استخدام $text؟
Aأنشئ فهرسًا نصيًا أولًا: db.coll.createIndex({ content: 'text' }).
Qما الفرق بين $text و $regex؟
A$text بحث نصي مفهرس على مستوى الكلمات مع استخلاص الجذور والدرجات؛ بينما $regex مطابقة أنماط، وعادة ما يكون مسحًا كاملًا.
Qكيف أرتب نتائج $text حسب الملاءمة؟
Aاعرض الدرجة بـ $meta: 'textScore'، ثم رتب عبر sort({ score: { $meta: 'textScore' } }).
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%