সূচী পরিচালনা করুন

এই পৃষ্ঠায় আপনার ইনডেক্সগুলো কীভাবে পরিচালনা করবেন তা বর্ণনা করা হয়েছে। ইনডেক্স সম্পর্কে আরও জানতে, ইনডেক্স ওভারভিউ দেখুন।

শুরু করার আগে

Cloud Firestore ইনডেক্স তৈরি করার আগে, নিশ্চিত করুন যে আপনাকে নিম্নলিখিত ভূমিকাগুলির মধ্যে যেকোনো একটি বরাদ্দ করা হয়েছে:

  • roles/datastore.owner
  • roles/datastore.indexAdmin
  • roles/editor
  • roles/owner

একটি রোল মঞ্জুর করতে, "একটি একক রোল মঞ্জুর করুন" দেখুন। Cloud Firestore রোল এবং সংশ্লিষ্ট অনুমতি সম্পর্কে আরও তথ্যের জন্য, "পূর্বনির্ধারিত রোল" দেখুন।

আপনি যদি কাস্টম রোল নির্ধারণ করে থাকেন, তাহলে ইনডেক্স তৈরি করার জন্য নিম্নলিখিত সমস্ত অনুমতি বরাদ্দ করুন:

  • datastore.indexes.create
  • datastore.indexes.delete
  • datastore.indexes.get
  • datastore.indexes.list
  • datastore.indexes.update

একটি সূচী তৈরি করুন

ইনডেক্স তৈরি করতে, নিম্নলিখিত ধাপগুলো সম্পন্ন করুন:

MongoDB API

ইনডেক্স তৈরি করতে createIndex() মেথডটি ব্যবহার করুন। উদাহরণস্বরূপ:

  •   db.restaurants.createIndex({"cuisine" : 1})
      
  •   db.restaurants.createIndex({"cuisine" : 1}, {sparse: true})
      
  • db.runCommand() ব্যবহার করে সর্বোচ্চ একটি ইনডেক্স তৈরি করাও সমর্থিত।

      db.runCommand({"createIndexes":"restaurant", "index": [{"key": {"cuisine":1}, {"name": "cuisine_index"}]})
      

নিম্নলিখিত সীমাবদ্ধতাগুলো লক্ষ্য করুন:

  • প্রতি অনুরোধে কেবল একটি ইনডেক্স তৈরি করা যাবে। db. collection .createIndexes() সমর্থিত নয়।
  • MongoDB API ব্যবহার করে ইনডেক্স তৈরির অডিট লগে google.firestore.admin.v1.FirestoreAdmin.CreateIndex মেথডটি ব্যবহৃত হয়।
  • সমর্থিত ইনডেক্স অপশনগুলোর জন্য, ইনডেক্স এবং ইনডেক্স প্রোপার্টিজ দেখুন।
Firebase কনসোল
  1. Firebase কনসোলে, Firestore ডেটাবেস পৃষ্ঠায় যান।

    ফায়ারস্টোর ডেটাবেসে যান

  2. ডাটাবেসের তালিকা থেকে একটি ডাটাবেস নির্বাচন করুন।
  3. ইনডেক্স ট্যাবে, ক্রিয়েট ইনডেক্স- এ ক্লিক করুন।
  4. একটি সংগ্রহ আইডি প্রবেশ করান।
  5. এক বা একাধিক ফিল্ড পাথ যোগ করুন এবং প্রতিটির জন্য একটি ইনডেক্স অপশন নির্বাচন করুন।
  6. ফিল্ড উপস্থিতির একটি বিকল্প নির্বাচন করুন, হয় নন-স্পার্স অথবা স্পার্স।
  7. ঐচ্ছিকভাবে, আপনি মাল্টিকি ইনডেক্স অপশনটি সেট করতে পারেন।
  8. তৈরি করুন- এ ক্লিক করুন।
  9. আপনার নতুন ইনডেক্সটি ইনডেক্সের তালিকায় প্রদর্শিত হবে এবং Cloud Firestore আপনার ইনডেক্স তৈরি করা শুরু করবে। যখন আপনার ইনডেক্স তৈরি হয়ে যাবে, আপনি ইনডেক্সটির পাশে একটি সবুজ টিক চিহ্ন দেখতে পাবেন। যদি ইনডেক্স তৈরি না হয়, তবে সম্ভাব্য কারণগুলোর জন্য ‘ইনডেক্স তৈরির ত্রুটি’ (Index building errors) দেখুন।
gcloud CLI

ইনডেক্স তৈরি করতে, gcloud firestore indexes composite create কমান্ডটি ব্যবহার করুন। api-scope mongodb-compatible-api তে সেট করুন।

gcloud firestore indexes composite create \
--database='DATABASE_ID' \
--collection-group=COLLECTION \
--field-config=FIELD_CONFIGURATION \
--query-scope=collection-group \
--density=dense \
--api-scope=mongodb-compatible-api

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • DATABASE_ID : একটি ডেটাবেস আইডি।
  • COLLECTION : একটি সংগ্রহের নাম।
  • FIELD_CONFIGURATION : একটি ফিল্ড কনফিগারেশন। প্রতিটি ফিল্ডের জন্য, --field-config=field-path= যোগ করুন। উদাহরণস্বরূপ:
        --field-config=field-path=user-id,order=descending \
        --field-config=field-path=score,order=descending
        

    এই ফিল্ডগুলো কনফিগার করার বিষয়ে আরও তথ্যের জন্য, --field-config দেখুন।

স্পার্স ইনডেক্স তৈরি করতে, --density=sparse-any সেট করুন।

মাল্টি-কি ইনডেক্স তৈরি করতে, --multikey ফ্ল্যাগটি যোগ করুন।

একটি অনন্য ইনডেক্স তৈরি করতে, --unique ফ্ল্যাগটি যোগ করুন।

টেরাফর্ম

google_firestore_index রিসোর্সটি ব্যবহার করুন এবং api_scope কে MONGODB_COMPATIBLE_APIquery_scope কে COLLECTION_GROUP এ সেট করুন।

resource "google_firestore_index" "index" {
  database    = "DATABASE_ID"
  collection  = "COLLECTION"
  api_scope   = "MONGODB_COMPATIBLE_API"
  query_scope = "COLLECTION_GROUP"

  // You can include multiple field blocks
  fields {
    field_path = "FIELD_PATH"
    order      = "ORDER"
  }

  // Optional
  multikey = true
  density  = "DENSITY"
}

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • DATABASE_ID : আপনার নির্বাচিত ডেটাবেসের আইডি।
  • COLLECTION : সূচীবদ্ধ করার জন্য সংগ্রহের নাম
  • FIELD_PATH : যে ফিল্ডটিকে ইনডেক্স করতে হবে তার নাম
  • ORDER : ASCENDING অথবা DESCENDING
  • DENSITY : SPARSE_ANY অথবা DENSE মধ্যে একটি

একটি পাঠ্য সূচী তৈরি করুন

কোনো কালেকশনের মধ্যে নির্দিষ্ট স্ট্রিং দিয়ে টেক্সট সার্চ করতে চাইলে একটি টেক্সট ইনডেক্স তৈরি করুন।

আপনার সংগ্রহের জন্য একটি পাঠ্য সূচী তৈরি করতে, নিম্নলিখিত ধাপগুলি সম্পন্ন করুন:

MongoDB API

টেক্সট ইনডেক্স তৈরি করতে createIndex() মেথডটি ব্যবহার করুন। নিচের উদাহরণে, যখন country বা food ফিল্ডগুলো পূরণ করে cities কালেকশনে কোনো ডকুমেন্ট লেখা হয়, তখন অনুসন্ধানের উদ্দেশ্যে এই ফিল্ডগুলো ইনডেক্স করা হয়।

db.cities.createIndex({"country": "text", "food": "text"})

ইনডেক্স করার জন্য একটি ফিল্ডকে অবশ্যই স্ট্রিং অথবা স্ট্রিং-এর অ্যারে হতে হবে। অ্যারে ইনডেক্সগুলো সার্চ-ইনডেক্সড নয়। ফলে, a.1.b ইনডেক্স করলে তা {a: {1: {b: something}}} অ্যারের something ইনডেক্স করবে, কিন্তু {a: [one, {b: something}]} কোনো একটি ফিল্ডকে নয়।

আপনি db.runCommand() ব্যবহার করেও ইনডেক্স তৈরি করতে পারেন। প্রতিটি কালেকশনের জন্য কেবল একটি টেক্সট ইনডেক্স থাকতে পারে, কিন্তু একটি db.runCommand() ব্যবহার করে আপনি বিভিন্ন ধরনের একাধিক ইনডেক্স তৈরি করতে পারেন। নিচের উদাহরণটিতে একটি টেক্সট ইনডেক্স তৈরি করতে db.runCommand() ব্যবহার করা হয়েছে:

db.runCommand({
  createIndexes: "cities",
  indexes: [
    {
      key: { "country": "text", "food": "text" },
      name: "country_text_food_text"
    }
  ]
})

একটি ডিফল্ট ভাষা নির্দিষ্ট করুন

এছাড়াও আপনি ঐচ্ছিকভাবে একটি ডিফল্ট ভাষা, অথবা আপনার ডকুমেন্টের একটি ফিল্ড পাথ নির্দিষ্ট করে দিতে পারেন, যেখানে ডিফল্ট ভাষাটি থাকবে।

নিম্নলিখিত উদাহরণে, myLanguageField language_override হিসেবে নির্দিষ্ট করা হয়েছে। যখন cities কালেকশনের কোনো ডকুমেন্টে myLanguageField নামের একটি ফিল্ড থাকে, তখন সেই নির্দিষ্ট ডকুমেন্টের country ফিল্ডকে ইন্ডেক্স করার ভাষা নির্ধারণ করতে ওই ফিল্ডের মানটি ব্যবহৃত হয়। এই মানটি ডিফল্ট ভাষা french ওভাররাইড করে।

db.cities.createIndex({"country": "text"}, {"default_language": "french", "language_override": "myLanguageField"})
  • আপনি ভাষার পুরো নাম ( english ) অথবা দুই অক্ষরের ISO ভাষা কোড ( en ) হিসেবে ভাষাটি লিখতে পারেন।
  • ডিফল্ট ভাষা সেট করা না থাকলে, Cloud Firestore ডিফল্টরূপে ইংরেজি ব্যবহার করে।
  • ল্যাঙ্গুয়েজ ওভাররাইড ফিল্ডটি অবশ্যই একটি টপ-লেভেল ফিল্ড হতে হবে। যদি এটি সেট না করা হয়, তাহলে ল্যাঙ্গুয়েজ ওভাররাইড ফিল্ডটির ডিফল্ট মান language হয়ে যায়।
  • আপনি যদি ডিফল্ট ভাষা হিসেবে null ক্যারেক্টার সেট করেন, তাহলে Cloud Firestore ভাষা ওভাররাইড হিসেবে কোনো ফিল্ড ব্যবহার করে না।

সমর্থিত ভাষাগুলোর তালিকা দেখতে প্রসারিত করুন।

ভাষা কোড ভাষার নাম
"এবং" স্বয়ংক্রিয়ভাবে সনাক্তকরণ
"আফ" আফ্রিকান
"আক" আকান
"বর্গ" আলবেনিয়ান
"am" আমহারিক
"আর" আরবি
"হাই" আর্মেনীয়
"আজ" আজারবাইজানীয়
"eu" বাস্ক
"হওয়া" বেলারুশীয়
"bn" বাংলা
"বিএস" বসনীয়
"বিজি" বুলগেরীয়
"আমার" বর্মী
"ca" কাতালান
"সেব" সেবুয়ানো
"chr" চেরোকি
"zh" চীনা
"zh-Hant" চীনা_ঐতিহ্যবাহী
"ঘণ্টা" ক্রোয়েশীয়
"সিএস" চেক
"দা" ড্যানিশ
"nl" ডাচ
"en" ইংরেজি
"eo" এস্পেরান্তো
"et" এস্তোনিয়ান
"ফিল" ফিলিপিনো
"ফি" ফিনিশ
"fr" ফরাসি
"gl" গ্যালিসিয়ান
"কা" জর্জিয়ান
"দে" জার্মান
"এল" গ্রীক
"গু" গুজরাটি
"এইচটি" হাইতিয়ান_ক্রিওল
"হা" হাউসা
"হাও" হাওয়াইয়ান
"iw" হিব্রু
"হাই" হিন্দি
"হুম" হমং
"হু" হাঙ্গেরীয়
"হয়" আইসল্যান্ডীয়
"ig" ইগবো
"আইডি" ইন্দোনেশিয়ান
"গা" আইরিশ
"এটা" ইতালীয়
"জা" জাপানি
"jv" জাভানিজ
"kn" কন্নড়
"কেকে" কাজাখ
'কিমি' খেমার
"কো" কোরিয়ান
"লো" লাও
"লা" ল্যাটিন
"lv" লাতভিয়ান
"lt" লিথুয়ানিয়ান
"lb" লুক্সেমবার্গীয়
"mk" ম্যাসিডোনিয়ান
"এমজি" মালাগাসি
"ms" মালয়
"এমএল" মালয়ালম
"mt" মাল্টিজ
"মি" মাওরি
"মিঃ" মারাঠি
"mfe" মরিসিয়েন
"এমএন" মঙ্গোলীয়
"sr-ME" সার্বিয়ান_মন্টেনিগ্রো
"নে" নেপালি
"না" নরওয়েজিয়ান
"ny" নিয়ানজা
"অথবা" ওড়িয়া
"ফা" ফার্সি
"pl" পোলিশ
"pt-BR" পর্তুগিজ_ব্রাজিল
"পিটি-পিটি" পর্তুগিজ_পর্তুগাল
"পা" পাঞ্জাবি
"রো" রোমানিয়ান
"রু" রাশিয়ান
"gd" স্কটিশ গ্যালিক
"এসআর" সার্বিয়ান
"st" দক্ষিণ সোথো
"si" সিংহলী
"sk" স্লোভাক
"এসএল" স্লোভেনীয়
তাই সোমালি
"es" স্প্যানিশ
"সু" সুন্দানিজ
"sw" সোয়াহিলি
"sv" সুইডিশ
"tg" তাজিক
"তা" তামিল
"তে" তেলুগু
"তম" থাই
"tr" তুর্কি
"uk" ইউক্রেনীয়
"উর" উর্দু
"উজ" উজবেক
"vi" ভিয়েতনামী
"cy" ওয়েলশ
"yi" ইদ্দিশ
"yo" ইয়োরুবা
"জু" জুলু

একটি পাঠ্য সূচক বিভাজন করুন

আপনি একটি ফিল্ড ব্যবহার করে আপনার ইনডেক্সকে পার্টিশনও করতে পারেন, যাতে আপনি একটি নির্দিষ্ট ফিল্ড ভ্যালু দিয়ে কোয়েরি ফিল্টার করতে পারেন। এই কনফিগারেশনটি আপনাকে আরও ভালো পারফরম্যান্সের কোয়েরি চালাতে সাহায্য করে, যদি আপনার কোয়েরি করা ইনডেক্সে সবসময় একটি নির্দিষ্ট ফিল্ড ফিল্টার করার প্রয়োজন হয়।

পার্টিশন সহ একটি ইনডেক্স তৈরি করতে, firestoreOptions ফিল্ডটি নিম্নরূপভাবে কনফিগার করুন:

db.runCommand({
  createIndexes: "cities",
  indexes: [
    {
      key: { "country": "text", "food": "text"},
      name: "country_text_food_text"
      firestoreOptions: {"customPartitionFields": ["PARTITIONED_FIELD"]
    }
  ]
})

কোথায়:

  • PARTITIONED_FIELD হলো পার্টিশনের জন্য ব্যবহৃত ফিল্ডের নাম। এই মানটি অবশ্যই একটি স্ট্রিং হতে হবে এবং একটি টপ-লেভেল ফিল্ডকে নির্দেশ করতে হবে। যখন আপনি একটি পার্টিশনড ইনডেক্সের বিরুদ্ধে কোয়েরি চালান, তখন আপনি এই ফিল্ডের মানের উপর ভিত্তি করে ফলাফল ফিল্টার করতে পারেন। উদাহরণস্বরূপ, আপনি city ব্যবহার করে আপনার ইনডেক্স পার্টিশন করতে পারেন। যদি আপনার টেক্সট ইনডেক্সে একটি city ফিল্ড সংজ্ঞায়িত করা থাকে, তাহলে ব্যবহারকারীরা একটি নির্দিষ্ট শহরের বিরুদ্ধে কোয়েরি করতে পারবেন।

    পার্টিশনটি অবশ্যই একটি মাত্র ফিল্ড হতে হবে। যদি আপনি কোনো ইনডেক্স পার্টিশন করেন, তাহলে আপনি কেবল সেইসব কোয়েরিই চালাতে পারবেন যেখানে পার্টিশন করা ফিল্ডটি নির্দিষ্ট করা আছে।

সীমাবদ্ধতা

  • প্রতি অনুরোধে আপনি কেবল একটি ইনডেক্স তৈরি করতে পারবেন।
  • MongoDB API ব্যবহার করে ইনডেক্স তৈরির অডিট লগে google.firestore.admin.v1.FirestoreAdmin.CreateIndex মেথডটি ব্যবহৃত হয়।
  • সমর্থিত ইনডেক্স অপশনগুলোর জন্য, ইনডেক্স এবং ইনডেক্স প্রোপার্টিজ দেখুন।

Firebase কনসোল

  1. Firebase কনসোলে , Firestore ডেটাবেস পৃষ্ঠায় যান।

    ফায়ারস্টোর ডেটাবেসে যান

  2. ডাটাবেসের তালিকা থেকে একটি ডাটাবেস নির্বাচন করুন।

  3. ইনডেক্স ট্যাবে, ক্রিয়েট ইনডেক্স- এ ক্লিক করুন।

  4. একটি সংগ্রহ আইডি প্রবেশ করান।

  5. এক বা একাধিক ফিল্ড পাথ যোগ করুন এবং প্রতিটির জন্য একটি ইনডেক্স অপশন নির্বাচন করুন।

  6. তৈরি করুন- এ ক্লিক করুন।

  7. আপনার নতুন ইনডেক্সটি ইনডেক্সের তালিকায় প্রদর্শিত হবে এবং MongoDB-উপযোগী অপারেশনগুলো আপনার ইনডেক্স তৈরি করা শুরু করবে। যখন আপনার ইনডেক্স তৈরি হয়ে যাবে, আপনি ইনডেক্সটির পাশে একটি সবুজ টিক চিহ্ন দেখতে পাবেন। যদি ইনডেক্স তৈরি না হয়, তবে সম্ভাব্য কারণগুলোর জন্য ‘ইনডেক্স তৈরির ত্রুটি’ (Index building errors) দেখুন।

একটি 2dsphere সূচক তৈরি করুন

ভূ-স্থানিক কোয়েরি সম্পাদন করতে এবং একটি নির্দিষ্ট দ্রাঘিমাংশ ও অক্ষাংশ থেকে একটি নির্দিষ্ট সীমার মধ্যে বিদ্যমান নথি অনুসন্ধান করার জন্য একটি 2dsphere সূচক তৈরি করুন।

আপনার সংগ্রহের জন্য একটি 2dsphere ইনডেক্স তৈরি করতে, নিম্নলিখিত ধাপগুলি সম্পন্ন করুন:

MongoDB API

ইনডেক্স তৈরি করতে createIndex() মেথডটি ব্যবহার করুন। উদাহরণস্বরূপ:

db.restaurants.createIndex({"location" : "2dsphere", "region": "2dsphere"})

db.runCommand() ব্যবহার করে সর্বাধিক একটি ইনডেক্স তৈরি করাও সমর্থিত:

db.runCommand({
  createIndexes: "restaurants",
  indexes: [
    {
      key: { "location": "2dsphere", "region": "2dsphere" },
      name: "location_2dsphere_region_2dsphere"
    }
  ]
})

একটি দ্বিমাত্রিক গোলকের সূচক বিভাজন করুন

আপনি একটি ফিল্ড ব্যবহার করে আপনার ইনডেক্সকে পার্টিশনও করতে পারেন, যাতে আপনি একটি নির্দিষ্ট ফিল্ড ভ্যালু দিয়ে কোয়েরি ফিল্টার করতে পারেন। এই কনফিগারেশনটি আপনাকে আরও ভালো পারফরম্যান্সের কোয়েরি চালাতে সাহায্য করে, যদি আপনার কোয়েরি করা ইনডেক্সে সবসময় একটি নির্দিষ্ট ফিল্ড ফিল্টার করার প্রয়োজন হয়।

পার্টিশন সহ একটি ইনডেক্স তৈরি করতে, firestoreOptions ফিল্ডটি নিম্নরূপভাবে কনফিগার করুন:

db.runCommand({
  createIndexes: "restaurants",
  indexes: [
    {
      key: { "location": "2dsphere", "region": "2dsphere" },
      name: "location_2dsphere_region_2dsphere"
      firestoreOptions: {"customPartitionFields": ["PARTITIONED_FIELD"]
    }
  ]
})

কোথায়:

  • PARTITIONED_FIELD হলো পার্টিশনের জন্য ব্যবহৃত ফিল্ডের নাম। যখন আপনি একটি পার্টিশন করা ইনডেক্সের বিরুদ্ধে কোয়েরি চালান, তখন আপনি এই ফিল্ডের মানের উপর ভিত্তি করে ফলাফল ফিল্টার করতে পারেন। উদাহরণস্বরূপ, যদি আপনার ইনডেক্সে আঞ্চলিক অবস্থানের জন্য একটি region ফিল্ড থাকে, তাহলে আপনি region ব্যবহার করে আপনার ইনডেক্সকে পার্টিশন করতে পারেন, যাতে ব্যবহারকারীরা তাদের নিজ নিজ অঞ্চলের রেস্তোরাঁগুলোর জন্য কোয়েরি করতে পারে।

    যদি আপনি কোনো ইনডেক্স পার্টিশন করেন, তাহলে আপনি কেবল সেইসব কোয়েরিই চালাতে পারবেন যেখানে পার্টিশন করা ফিল্ডটি নির্দিষ্ট করা আছে।

সীমাবদ্ধতা

  • প্রতি অনুরোধে আপনি কেবল একটি ইনডেক্স তৈরি করতে পারবেন।
  • MongoDB API ব্যবহার করে ইনডেক্স তৈরির অডিট লগে google.firestore.admin.v1.FirestoreAdmin.CreateIndex মেথডটি ব্যবহৃত হয়।
  • সমর্থিত ইনডেক্স অপশনগুলোর জন্য, ইনডেক্স এবং ইনডেক্স প্রোপার্টিজ দেখুন।

Firebase কনসোল

  1. Firebase কনসোলে , Firestore ডেটাবেস পৃষ্ঠায় যান।

    ফায়ারস্টোর ডেটাবেসে যান

  2. ডাটাবেসের তালিকা থেকে একটি ডাটাবেস নির্বাচন করুন।

  3. ইনডেক্স ট্যাবে, ক্রিয়েট ইনডেক্স- এ ক্লিক করুন।

  4. একটি সংগ্রহ আইডি প্রবেশ করান।

  5. এক বা একাধিক ফিল্ড পাথ যোগ করুন এবং প্রতিটির জন্য একটি ইনডেক্স অপশন নির্বাচন করুন।

  6. তৈরি করুন- এ ক্লিক করুন।

  7. আপনার নতুন ইনডেক্সটি ইনডেক্সের তালিকায় প্রদর্শিত হবে এবং MongoDB-উপযোগী অপারেশনগুলো আপনার ইনডেক্স তৈরি করা শুরু করবে। যখন আপনার ইনডেক্স তৈরি হয়ে যাবে, আপনি ইনডেক্সটির পাশে একটি সবুজ টিক চিহ্ন দেখতে পাবেন। যদি ইনডেক্স তৈরি না হয়, তবে সম্ভাব্য কারণগুলোর জন্য ‘ইনডেক্স তৈরির ত্রুটি’ (Index building errors) দেখুন।

একটি সূচক মুছে ফেলুন

একটি ইনডেক্স মুছে ফেলার জন্য, নিম্নলিখিত ধাপগুলো সম্পন্ন করুন:

MongoDB API

একটি ইনডেক্স মুছে ফেলার জন্য dropIndex() মেথডটি ব্যবহার করুন। উদাহরণস্বরূপ:

ইনডেক্সের নাম ব্যবহার করে একটি ইনডেক্স মুছে ফেলুন

db.restaurants.dropIndex("cuisine_index")

ইনডেক্স ডেফিনিশন ব্যবহার করে একটি ইনডেক্স ডিলিট করুন

db.restaurants.dropIndex({"cuisine" : 1})
Firebase কনসোল
  1. Firebase কনসোলে, Firestore ডেটাবেস পৃষ্ঠায় যান।

    ফায়ারস্টোর ডেটাবেসে যান

  2. ডাটাবেসের তালিকা থেকে একটি ডাটাবেস নির্বাচন করুন।
  3. ইনডেক্স ট্যাবে ক্লিক করুন।
  4. ইনডেক্সের তালিকা থেকে, আপনি যে ইনডেক্সটি মুছতে চান সেটির জন্য 'More' বাটন থেকে 'Delete' নির্বাচন করুন।
  5. সূচী মুছুন-এ ক্লিক করুন।
gcloud CLI
  1. ইনডেক্সের নাম খুঁজে বের করতে, gcloud firestore indexes composite list কমান্ডটি ব্যবহার করুন।

    gcloud firestore indexes composite list \
    --database='DATABASE_ID'

    DATABASE_ID এর জায়গায় ডাটাবেস আইডিটি বসান।

  2. ইনডেক্সটি ডিলিট করতে, gcloud firestore indexes composite delete কমান্ডটি ব্যবহার করুন।

    gcloud firestore indexes composite delete INDEX_NAME \
    --database='DATABASE_ID'

    নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

    • INDEX_NAME : একটি ইনডেক্সের নাম
    • DATABASE_ID : একটি ডাটাবেস আইডি

সূচক তৈরির সময়

একটি ইনডেক্স তৈরি করার জন্য, Cloud Firestore প্রথমে ইনডেক্সটি তৈরি করতে হয় এবং তারপর বিদ্যমান ডেটা দিয়ে ইনডেক্সের এন্ট্রিগুলো পূরণ করতে হয়। একটি ইনডেক্স তৈরি করতে প্রয়োজনীয় সময় নিম্নলিখিত বিষয়গুলোর উপর নির্ভর করে:

  • একটি ইনডেক্স তৈরি করতে ন্যূনতম কয়েক মিনিট সময় লাগে, এমনকি একটি খালি ডাটাবেসের ক্ষেত্রেও।

  • ইনডেক্স এন্ট্রিগুলো ব্যাকফিল করতে প্রয়োজনীয় সময় নির্ভর করে নতুন ইনডেক্সে কী পরিমাণ বিদ্যমান ডেটা অন্তর্ভুক্ত হবে তার উপর। ইনডেক্স সংজ্ঞার সাথে যত বেশি ফিল্ড ভ্যালু মেলে, ইনডেক্স এন্ট্রিগুলো ব্যাকফিল করতে তত বেশি সময় লাগে।

দীর্ঘমেয়াদী কার্যক্রম পরিচালনা করুন

ইনডেক্স তৈরি করা একটি দীর্ঘ প্রক্রিয়া । নিম্নলিখিত বিভাগগুলিতে ইনডেক্সের জন্য এই দীর্ঘ প্রক্রিয়াগুলি কীভাবে পরিচালনা করতে হয় তা বর্ণনা করা হয়েছে।

আপনি একটি ইনডেক্স তৈরি করা শুরু করার পর, Cloud Firestore অপারেশনটিকে একটি অনন্য নাম প্রদান করে। অপারেশনের নামগুলোর শুরুতে projects/ PROJECT_ID /databases/ DATABASE_ID /operations/ যুক্ত থাকে, উদাহরণস্বরূপ:

projects/PROJECT_ID/databases/DATABASE_ID/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg

describe কমান্ডের জন্য অপারেশনের নাম নির্দিষ্ট করার সময় আপনি প্রিফিক্সটি বাদ দিতে পারেন।

সমস্ত দীর্ঘস্থায়ী অপারেশনগুলির তালিকা করুন

দীর্ঘ সময় ধরে চলমান অপারেশনগুলির তালিকা দেখতে, gcloud firestore operations list কমান্ডটি ব্যবহার করুন। এই কমান্ডটি চলমান এবং সম্প্রতি সম্পন্ন হওয়া অপারেশনগুলির তালিকা দেখায়। অপারেশনগুলি সম্পন্ন হওয়ার পর কয়েক দিনের জন্য তালিকাভুক্ত থাকে:

gcloud firestore operations list

অপারেশনের অবস্থা পরীক্ষা করুন

সমস্ত দীর্ঘ সময় ধরে চলা অপারেশনগুলির তালিকা করার পরিবর্তে, আপনি একটিমাত্র অপারেশনের বিবরণ তালিকাভুক্ত করতে পারেন:

gcloud firestore operations describe operation-name

সমাপ্তির সময় অনুমান করা

আপনার অপারেশনটি চলার সময়, এর সার্বিক অবস্থা জানতে state ফিল্ডের মান দেখুন।

একটি দীর্ঘ-চলমান অপারেশনের অবস্থা জানতে চাইলে workEstimated এবং workCompleted মেট্রিকগুলোও ফেরত আসে। workEstimated দেখায় যে একটি অপারেশন আনুমানিক মোট কতগুলো ডকুমেন্ট প্রসেস করবে। workCompleted দেখায় এখন পর্যন্ত প্রসেস করা ডকুমেন্টের সংখ্যা। অপারেশনটি সম্পন্ন হওয়ার পর, workCompleted প্রকৃতপক্ষে প্রসেস করা মোট ডকুমেন্টের সংখ্যা প্রতিফলিত করে, যার মান workEstimated এর মান থেকে ভিন্ন হতে পারে।

কোনো কাজের অগ্রগতি অনুমান করতে, সম্পন্ন হওয়া workCompleted workEstimated দিয়ে ভাগ করুন।

নিম্নে একটি ইনডেক্স তৈরির অগ্রগতির উদাহরণ দেওয়া হলো:

{
  "operations": [
    {
      "name": "projects/project-id/operations/AyAyMDBiM2U5NTgwZDAtZGIyYi0zYjc0LTIzYWEtZjg1ZGdWFmZWQHEjF0c2Flc3UtcmV4ZWRuaS1uaW1kYRUKSBI",
      "metadata": {
        "@type": "type.googleapis.com/google.firestore.admin.v1.IndexOperationMetadata",
        "common": {
          "operationType": "CREATE_INDEX",
          "startTime": "2020-06-23T16:52:25.697539Z",
          "state": "PROCESSING"
        },
        "progressDocuments": {
          "workCompleted": "219327",
          "workEstimated": "2198182"
        }
       },
    },
    ...

যখন কোনো অপারেশন সম্পন্ন হয়, তখন অপারেশনের বিবরণে "done": true লেখা থাকবে। অপারেশনের ফলাফল জানতে state ফিল্ডের মান দেখুন। যদি রেসপন্সে done ফিল্ডটি সেট করা না থাকে, তাহলে অপারেশনটি সম্পন্ন হয়নি।