এই অধ্যায়ে, আমরা MongoDB-র পূর্ণ-পাঠ অনুসন্ধানের পরিচিতি দেব, যা SQL-র "like" অপারেটরের থেকে আলাদা। MongoDB-র পূর্ণ-পাঠ অনুসন্ধানটি "like" এর অনুমোদনের তুলনায় পাঠের অনুসন্ধানে আরও দক্ষ।

পরীক্ষার উপযোগী তথ্য প্রস্তুত করুন

কিছু রেকর্ড স্টোর সংগ্রহে ঢুকান

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: { $search: "অনুসন্ধান কীওয়ার্ড" } }

উদাহরণ:

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

ব্যাখ্যা:

  • নাম এবং বিবরণে "বাদাম", "দোকান", এবং "জাভা" শব্দগুলি ধরে ডকুমেন্ট অনুসন্ধান করুন।

আউটপুট:

{ "_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" }

উপযোগিতা সাজানো

ডিফল্টভাবে, $পাঠ অনুসন্ধানের ফলাফলগুলি অপ্রবন্ধিত। $পাঠ অনুসন্ধানটি প্রতিটি ডকুমেন্টের উপযোগিতা নির্ধারণ করার জন্য একটি স্কোর (টেক্স্টস্কোর) গণনা করে। আমরা এই স্কোরটি ব্যবহার করে উপযোগিতা সাজানো এবং উচ্চ উপযোগিতা সহ কাগজপত্র প্রদর্শন করতে পারি।

db.stores.find(
   { $text: { $search: "java coffee shop" } },
   { score: { $meta: "textScore" } }  // উপস্থাপন করা করা ব্যবহারের জন্য দাবি করুন
).sort( { score: { $meta: "textScore" } } ) // টেক্সটস্কোর ব্যবহার করে যথাযথ ক্রমানুসার

লক্ষ্য: MongoDB-র পূর্ণ-পাঠ অনুসন্ধানটি সর্বোত্তম চীনা বাক্যগুলির জন্য খুব ভাল সহায়তা সরবরাহ করে না।