কম্পিউটার টিউটোরিয়াল

MongoDB-এ টেক্সট সার্চ ইমপ্লিমেন্ট করা ($text, $search)

MongoDB-এ টেক্সট ইন্ডেক্স ও $text/$search ব্যবহার করে ফুল-টেক্সট সার্চ

MongoDB-এ প্রফেশনাল টেক্সট সার্চের জন্য টেক্সট ইন্ডেক্স তৈরি করে $text ও $search অপারেটর ব্যবহার করা হয়। এটি স্টেমিং, কেস-ইনসেনসিটিভ, ফ्रेज সার্চ সাপোর্ট করে।

উদাহরণ: টেক্সট ইন্ডেক্স তৈরি ও ডেটা ইনসার্ট

> db.demo156.createIndex({"StudentName":"text"});
{ "createdCollectionAutomatically" : true, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.demo156.insertOne({"StudentName":"Chris Brown"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3547e8fdf09dd6d08539e6") }
> db.demo156.insertOne({"StudentName":"John Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3547f2fdf09dd6d08539e7") }
> db.demo156.insertOne({"StudentName":"John Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3547f7fdf09dd6d08539e8") }

সব ডকুমেন্ট দেখানো

> db.demo156.find();

আউটপুট:

{ "_id" : ObjectId("5e3547e8fdf09dd6d08539e6"), "StudentName" : "Chris Brown" }
{ "_id" : ObjectId("5e3547f2fdf09dd6d08539e7"), "StudentName" : "John Doe" }
{ "_id" : ObjectId("5e3547f7fdf09dd6d08539e8"), "StudentName" : "John Smith" }

টেক্সট সার্চ কোয়ারি ("John" শব্দ খুঁজুন)

> db.demo156.find({ $text: { $search: "John" } } )

আউটপুট:

{ "_id" : ObjectId("5e3547f7fdf09dd6d08539e8"), "StudentName" : "John Smith" }
{ "_id" : ObjectId("5e3547f2fdf09dd6d08539e7"), "StudentName" : "John Doe" }

ব্যাখ্যা

  • createIndex({"StudentName":"text"}) — টেক্সট ইন্ডেক্স তৈরি (এক কালেকশনে একটাই টেক্সট ইন্ডেক্স থাকতে পারে, কিন্তু কম্পাউন্ড হতে পারে)।
  • {$text: {$search: "John"}} — "John" শব্দটা যেকোনো টেক্সট-ইন্ডেক্সড ফিল্ডে খুঁজে।
  • ফলাফল রিলেভেন্স স্কোর অনুযায়ী সর্টেড আসে (স্কোর দেখতে {score: {$meta: "textScore"}} প্রজেকশনে যোগ করুন)।
  • অপশন: $search: "\"John Doe\"" (ফ्रेज), $search: "John -Doe" (নেগেটিভ)।

সীমাবদ্ধতা: টেক্সট ইন্ডেক্স স্পেস নিবে, রাইট-টু-লেফট ভাষায় লিমিটেশন আছে। বাংলা সার্চের জন্য কাস্টম অ্যানালাইজার বা এटलাস সার্চ প্রয়োজন।

  1. MongoDB-তে অবজেক্টের অ্যারে অনুসন্ধান করা

  2. MongoDB-এ রেগুলার এক্সপ্রেশন দিয়ে টেক্সট সার্চ করা

  3. MongoDB-এ ফুল টেক্সট সার্চ ইমপ্লিমেন্ট করা

  4. MongoDB-এ অ্যারে ম্যাচের জন্য $all অপারেটর ব্যবহার করা