Text Index এবং Geospatial Index গাইড ও নোট

Database Tutorials - মঙ্গোডিবি (MongoDB) - Indexes in MongoDB
363

MongoDB তে ইনডেক্সিং ডেটার অনুসন্ধান দ্রুত করতে সাহায্য করে। এর মধ্যে Text Index এবং Geospatial Index বিশেষ ধরনের ইনডেক্স, যা বিশেষ ধরনের ডেটার অনুসন্ধান প্রক্রিয়া দ্রুত করতে ব্যবহৃত হয়। নিচে এই দুটি ইনডেক্সের কার্যকারিতা এবং ব্যবহারের পদ্ধতি আলোচনা করা হয়েছে।


Text Index

Text Index MongoDB তে টেক্সট ডেটার উপর অনুসন্ধান করতে ব্যবহৃত হয়। এটি মূলত স্ট্রিং ডেটা অনুসন্ধান করার জন্য উপকারী, যেমন ব্লগ পোস্টের কনটেন্ট, নোটস, অথবা এমন কোনও ডেটা যেখানে শব্দের ভিত্তিতে অনুসন্ধান প্রয়োজন। MongoDB তে text index তৈরি করা হলে, আপনি ডেটাবেসের মধ্যে শব্দের মাধ্যমে অনুসন্ধান করতে পারবেন।

Text Index তৈরির প্রক্রিয়া

  1. Text Index তৈরি করা:
    MongoDB তে createIndex() কমান্ড ব্যবহার করে text index তৈরি করা হয়। আপনি যে ফিল্ডে টেক্সট ইনডেক্স তৈরি করতে চান, সেই ফিল্ডের উপর ইনডেক্স তৈরি করতে হবে।

    উদাহরণ:

    db.myCollection.createIndex({ "description": "text" })
    

    এখানে description ফিল্ডের উপর একটি টেক্সট ইনডেক্স তৈরি করা হচ্ছে।

  2. Text Search ব্যবহার করা:
    একবার টেক্সট ইনডেক্স তৈরি হয়ে গেলে, আপনি $text অপারেটর ব্যবহার করে কুয়েরি করতে পারবেন। এটি MongoDB এর ডেটাবেসে টেক্সট অনুসন্ধান করতে সাহায্য করে।

    উদাহরণ:

    db.myCollection.find({ $text: { $search: "MongoDB" } })
    

    এই কুয়েরিটি description ফিল্ডে "MongoDB" শব্দের উপস্থিতি অনুসন্ধান করবে এবং সেই ডকুমেন্টগুলো ফিরিয়ে দেবে, যেখানে এই শব্দটি রয়েছে।

  3. টেক্সট কুয়েরি অপশন: MongoDB তে টেক্সট অনুসন্ধান আরও বৈশিষ্ট্যসহ করা যায়, যেমন:

    • $text: টেক্সট অনুসন্ধান করা
    • $language: অনুসন্ধানে নির্দিষ্ট ভাষা ব্যবহার করা
    • $caseSensitive: বড় হাতের এবং ছোট হাতের অক্ষর আলাদা করা (ডিফল্ট নয়)
    • $diacriticSensitive: সঠিক উচ্চারণের জন্য অক্ষরের পার্থক্য দেখানো (ডিফল্ট নয়)

    উদাহরণ:

    db.myCollection.find({ $text: { $search: "database" } })
    
  4. Text Index এবং Sorting: MongoDB তে আপনি টেক্সট অনুসন্ধান ফলাফল সোর্ট করতে পারেন textScore ফিল্ড ব্যবহার করে:

    db.myCollection.find({ $text: { $search: "MongoDB" } }).sort({ score: { $meta: "textScore" } })
    

Geospatial Index

MongoDB তে Geospatial Index ব্যবহৃত হয় ভৌগলিক অবস্থান (Geo-Coordinates) অনুসন্ধানের জন্য। এটি ব্যবহার করে আপনি ম্যাপের উপর নির্দিষ্ট স্থান নির্ধারণ করতে পারেন এবং সেই স্থান থেকে নির্দিষ্ট রেঞ্জে থাকা ডেটা অনুসন্ধান করতে পারেন। Geospatial Index মূলত লং, ল্যাট (longitude, latitude) ডেটা ব্যবহৃত হয়।

Geospatial Index এর প্রকারভেদ

MongoDB তে দুটি প্রধান Geospatial Index আছে:

  1. 2dsphere Index:
    এটি পৃথিবীর গঠন অনুযায়ী (sphere) একটি জিওগ্রাফিক্যাল স্থান বা স্থান সম্পর্কিত ডেটার জন্য ব্যবহৃত হয়। 2dsphere ইনডেক্স পৃথিবীর গোলকীয় (spherical) আকারে ডেটা সঞ্চালন করে।
  2. 2d Index:
    এটি পৃথিবীর পৃষ্ঠ (plane) ভিত্তিক স্থান সম্পর্কিত ডেটার জন্য ব্যবহৃত হয় এবং এটি দুইটি মাত্রার (latitude, longitude) স্থানে ডেটা অনুসন্ধান করতে ব্যবহৃত হয়।

Geospatial Index তৈরি করার প্রক্রিয়া

  1. 2dsphere Index তৈরি করা: আপনি যদি 2dsphere ইনডেক্স তৈরি করতে চান, তাহলে আপনাকে একটি জিওগ্রাফিক্যাল ডেটা ফিল্ডের উপর ইনডেক্স তৈরি করতে হবে।

    উদাহরণ:

    db.places.createIndex({ location: "2dsphere" })
    

    এখানে location হল ঐ ফিল্ড যেখানে আপনি longitude এবং latitude মান রাখতে চান।

  2. Geospatial Query ব্যবহার করা: Geospatial Index তৈরি করার পর, আপনি সেই ইনডেক্স ব্যবহার করে ভৌগলিক অনুসন্ধান করতে পারবেন।

    উদাহরণ:

    db.places.find({
      location: {
        $nearSphere: {
          type: "Point",
          coordinates: [ -73.9667, 40.78 ]
        }
      }
    })
    

    এই কুয়েরি ব্যবহার করে MongoDB আপনাকে ভৌগলিক অবস্থান (-73.9667, 40.78) থেকে কাছাকাছি সমস্ত ডকুমেন্ট ফিরিয়ে দেবে।

  3. Geospatial Query with Range: আপনি যদি একটি নির্দিষ্ট রেঞ্জের মধ্যে থাকা ডেটা খুঁজতে চান, তাহলে আপনি maxDistance ব্যবহার করতে পারেন:

    উদাহরণ:

    db.places.find({
      location: {
        $nearSphere: {
          type: "Point",
          coordinates: [ -73.9667, 40.78 ],
          $maxDistance: 1000
        }
      }
    })
    

    এখানে 1000 মিটার রেঞ্জের মধ্যে ডেটা খোঁজা হবে।


সারাংশ

MongoDB তে Text Index এবং Geospatial Index দুটি বিশেষ ধরনের ইনডেক্স, যা বিশেষ ধরনের ডেটার অনুসন্ধান দ্রুত করতে ব্যবহৃত হয়। Text Index ব্যবহার করে আপনি স্ট্রিং ডেটার মধ্যে শব্দ অনুসন্ধান করতে পারবেন, এবং Geospatial Index ব্যবহার করে আপনি ভৌগলিক অবস্থান বা স্থান সম্পর্কিত ডেটা দ্রুত খুঁজে পেতে পারবেন। MongoDB এর এই ইনডেক্সগুলোর সাহায্যে ডেটাবেসের পারফরম্যান্স এবং অনুসন্ধান ক্ষমতা অনেক বেড়ে যায়, বিশেষত বড় ডেটাসেট এবং বিশেষ ধরনের অনুসন্ধান ক্ষেত্রে।

Content added By
Promotion

Are you sure to start over?

Loading...