اس باب میں ہم مانگو ڈی بی کی مکمل متن تلاش کے بارے میں تعارف دینے جا رہے ہیں، جو ایس کیو ایل کے "جیسے" آپریٹر سے مختلف ہے۔ مانگو ڈی بی کی مکمل متن تلاش ٹیکسٹ تلاش کے لیے ایس کیو ایل کے "جیسے" کی پیمائش کے مقابلے میں متن تلاش کے لیے زیادہ فعال ہے۔

ٹیسٹ ڈیٹا تیار کریں

سٹورز کی کالکشن میں کچھ ریکارڈز شامل کریں

db.stores.insert(
   [
     { _id: 1, name: "Java Hut", description: "Coffee and cakes" },
     { _id: 2, name: "Burger Buns", description: "Gourmet hamburgers" },
     { _id: 3, name: "Coffee Shop", description: "Just coffee" },
     { _id: 4, name: "Clothes Clothes Clothes", description: "Discount clothing" },
     { _id: 5, name: "Java Shopping", description: "Indonesian goods" }
   ]
)

ٹیکسٹ انڈیکس بنائیں

مکمل متن تلاش کی صلاحیت کو استعمال کرنے کے لیے، آپ کو ایک ٹیکسٹ انڈیکس بنانا ہوگا۔ مثال:

db.stores.createIndex( { name: "text", description: "text" } )

تشریح:

  • نام اور تفصیل کے فیلڈز کے لیے ٹیکسٹ قسم کا انڈیکس بنائیں۔

نوٹ: کالکشن صرف ایک ٹیکسٹ انڈیکس کی اجازت دیتا ہے، لیکن ایک ٹیکسٹ انڈیکس میں متعدد فیلڈ شامل ہوسکتے ہیں۔

$text آپریٹر

ٹیکسٹ تلاش کے لیے $text آپریٹر کا استعمال کریں۔

سنٹیکس:

{ $text: { $search: "تلاش کی کلمات" } }

مثال:

db.stores.find( { $text: { $search: "java coffee shop" } } )

تفصیل:

  • نام اور تفصیل کے فیلڈز میں "coffee", "shop", اور "java" کلمات شامل کردہ دستاویزات تلاش کریں۔

نتیجہ:

{ "_id" : 3, "name" : "Coffee Shop", "description" : "Just coffee" }
{ "_id" : 1, "name" : "Java Hut", "description" : "Coffee and cakes" }
{ "_id" : 5, "name" : "Java Shopping", "description" : "Indonesian goods" }

جملہ تلاش

db.stores.find( { $text: { $search: "\"coffee shop\"" } } )

نتیجہ

{ "_id" : 3, "name" : "Coffee Shop", "description" : "Just coffee" }

متعلق بحالی

پیش فرض طور پر، $text کوئیری کے نتائج بے ترتیب ہوتے ہیں۔ $text کوئیری ہر دستاویز کی متعلق بحالی کا امتیاز (ٹیکسٹ امتیاز) حاصل کرتی ہے۔ ہم اس امتیاز کو استعمال کرکے دستاویزات کو عموماً بالائی درجہ میں دکھانے کے لیے استعمال کرتے ہیں۔

db.stores.find(
   { $text: { $search: "java coffee shop" } },
   { score: { $meta: "textScore" } }  // امتیاز تلاش کرنے کا اعلان کریں
).sort( { score: { $meta: "textScore" } } ) // textScore کا استعمال کرتے ہوئے ترتیب دینا مخصوص کریں

نوٹ: مانگو ڈی بی مکمل متن تلاش چائنیز فریز کے لیے بہت اچھی حمایت نہیں فراہم کرتا۔