Latest web development tutorials

MongoDB البحث عن النص الكامل

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

هذه العملية مشابهة لكلمة البحث من خلال كلمة عملية استرجاع الجدول القاموس.

MongoDB الإصدار 2.4 من البداية لدعم البحث عن النص الكامل، ويدعم حاليا 15 لغة (مؤقتا لا يدعم الصينية) فهرس النص الكامل.

  • دانماركي
  • هولندي
  • الإنجليزية
  • اللغة الفنلندية
  • اللغة الفرنسية
  • ألماني
  • الهنغارية
  • الإيطالي
  • النرويجية
  • البرتغالية
  • الرومانية
  • الروسية
  • الأسبانية
  • اللغة السويدية
  • اللغة التركية

تمكين البحث عن النص الكامل

بعد تمكين MongoDB الإصدار 2.6 من البحث الافتراضي النص الكامل، إذا كنت تستخدم الإصدار السابق، تحتاج إلى استخدام التعليمات البرمجية التالية لتمكين البحث عن النص الكامل:

>db.adminCommand({setParameter:true,textSearchEnabled:true})

أو استخدام الأمر:

mongod --setParameter textSearchEnabled=true

إنشاء فهرس النص الكامل

النظر في مجموعات البيانات المشاركات الوثيقة التالية، بما في ذلك محتوى المادة (POST_TEXT) والعلامات (العلامات):

{
   "post_text": "enjoy the mongodb articles on w3cschool.cc",
   "tags": [
      "mongodb",
      "w3cschool"
   ]
}

يمكننا أن نبني فهرس النص الكامل حقل POST_TEXT، حتى نتمكن من البحث في محتوى المقال:

>db.posts.ensureIndex({post_text:"text"})

استخدام فهرسة النص الكامل

والآن بعد أن قمنا بإنشاء فهرس النص الكامل للPOST_TEXT، يمكننا البحث عن الكلمات الرئيسية في المادة w3cschool.cc:

>db.posts.find({$text:{$search:"w3cschool.cc"}})

إرجاع الأمر التالي على بيانات وثيقة الواردة w3cschool.cc الكلمات الأساسية التالية:

{ 
   "_id" : ObjectId("53493d14d852429c10000002"), 
   "post_text" : "enjoy the mongodb articles on w3cschool.cc", 
   "tags" : [ "mongodb", "w3cschool" ]
}
{
   "_id" : ObjectId("53493d1fd852429c10000003"), 
   "post_text" : "writing tutorials on w3cschool.cc",
   "tags" : [ "mongodb", "tutorial" ] 
}

إذا كنت تستخدم نسخة قديمة من MongoDB، يمكنك استخدام الأمر التالي:

>db.posts.runCommand("text",{search:" w3cschool.cc"})

استخدام فهرسة النص الكامل يمكن تحسين كفاءة البحث.


إزالة فهرسة النص الكامل

حذف فهرس النص الكامل الموجودة، يمكنك استخدام الأمر بحث للعثور على اسم المؤشر:

>db.posts.getIndexes()

الحصول على اسم الفهرس الأمر أعلاه، في هذه الحالة مؤشر اسمه post_text_text، تنفيذ الأمر التالي لحذف الفهرس:

>db.posts.dropIndex("post_text_text")