ক্লাউড ফায়ারস্টোর সূচক সংজ্ঞা রেফারেন্স

ক্লাউড ফায়ারস্টোর স্বয়ংক্রিয়ভাবে সূচী তৈরি করে সবচেয়ে সাধারণ ধরনের প্রশ্নের সমর্থন করার জন্য, কিন্তু আপনাকে ক্লাউড ফায়ারস্টোর গাইডে বর্ণিত কাস্টম সূচী এবং সূচী ওভাররাইড সংজ্ঞায়িত করতে দেয়।

আপনি Firebase কনসোলে বা CLI ব্যবহার করে কাস্টম সূচী তৈরি, সংশোধন এবং স্থাপন করতে পারেন। CLI থেকে, ডিফল্ট ফাইলের নাম firestore.indexes.json সহ আপনার ইন্ডেক্স কনফিগারেশন ফাইল সম্পাদনা করুন এবং firebase deploy কমান্ড ব্যবহার করে স্থাপন করুন।

আপনি firebase firestore:indexes ব্যবহার করে CLI এর সাথে সূচী রপ্তানি করতে পারেন।

একটি সূচক কনফিগারেশন ফাইল একটি indexes অ্যারে এবং একটি ঐচ্ছিক fieldOverrides অ্যারে ধারণকারী একটি বস্তুকে সংজ্ঞায়িত করে। এখানে একটি উদাহরণ:

{
  // Required, specify compound and vector indexes
  indexes: [
    {
      collectionGroup: "posts",
      queryScope: "COLLECTION",
      fields: [
        { fieldPath: "author", arrayConfig: "CONTAINS" },
        { fieldPath: "timestamp", order: "DESCENDING" }
      ]
    },
    {
      collectionGroup: "coffee-beans",
      queryScope: "COLLECTION",
      fields: [
        {
          fieldPath: "embedding_field",
          vectorConfig: { dimension: 256, flat: {} }
        }
      ]
    }
  ],

  // Optional, disable indexes or enable single-field collection group indexes
  fieldOverrides: [
    {
      collectionGroup: "posts",
      fieldPath: "myBigMapField",
      // We want to disable indexing on our big map field, and so empty the indexes array
      indexes: []
    }
  ]
}

একটি সূচক কনফিগারেশন স্থাপন করুন

firebase deploy কমান্ড দিয়ে আপনার ইনডেক্স কনফিগারেশন স্থাপন করুন। আপনি যদি শুধুমাত্র আপনার প্রকল্পে কনফিগার করা ডাটাবেসের জন্য সূচী স্থাপন করতে চান তবে --only firestore পতাকা যোগ করুন। এই কমান্ডের জন্য বিকল্প রেফারেন্স দেখুন।

স্থাপন করা সূচী তালিকাভুক্ত করতে, firebase firestore:indexes কমান্ড চালান। আপনার প্রকল্পের ডিফল্ট ডাটাবেস ব্যতীত অন্য কোনো ডাটাবেসের জন্য সূচী তালিকায় --database=<databaseID> পতাকা যোগ করুন।

আপনি যদি Firebase কনসোল ব্যবহার করে সূচীতে সম্পাদনা করেন তবে নিশ্চিত করুন যে আপনি আপনার স্থানীয় সূচী ফাইলটিও আপডেট করেছেন। সূচী পরিচালনার বিষয়ে আরও জানতে, ক্লাউড ফায়ারস্টোর গাইডগুলি দেখুন।

JSON বিন্যাস

সূচক

indexes অ্যারেতে একটি বস্তুর স্কিমা নিম্নরূপ। ঐচ্ছিক বৈশিষ্ট্য দ্বারা চিহ্নিত করা হয় ? চরিত্র

মনে রাখবেন ক্লাউড ফায়ারস্টোর ডকুমেন্ট ক্ষেত্রগুলি শুধুমাত্র একটি মোডে ইন্ডেক্স করা যেতে পারে, এইভাবে একটি ফিল্ড অবজেক্টে শুধুমাত্র একটি order , arrayConfig , এবং vectorConfig বৈশিষ্ট্য থাকতে পারে।

  collectionGroup: string  // Labeled "Collection ID" in the Firebase console
  queryScope: string       // One of "COLLECTION", "COLLECTION_GROUP"
  fields: array
    fieldPath: string
    order?: string         // One of "ASCENDING", "DESCENDING"; excludes arrayConfig and vectorConfig properties
    arrayConfig?: string   // If this parameter used, must be "CONTAINS"; excludes order and vectorConfig properties
    vectorConfig?: object  // Indicates that this is a vector index; excludes order and arrayConfig properties
      dimension: number    // The resulting index will only include vectors of this dimension
      flat: {}             // Indicates the vector index is a flat index

ফিল্ড ওভাররাইড

fieldOverrides অ্যারেতে একটি বস্তুর স্কিমা নিম্নরূপ। ঐচ্ছিক বৈশিষ্ট্য দ্বারা চিহ্নিত করা হয় ? চরিত্র

মনে রাখবেন ক্লাউড ফায়ারস্টোর ডকুমেন্ট ক্ষেত্রগুলি শুধুমাত্র একটি মোডে ইন্ডেক্স করা যেতে পারে, এইভাবে একটি ফিল্ড অবজেক্ট order এবং arrayConfig বৈশিষ্ট্য উভয়ই ধারণ করতে পারে না।

  collectionGroup: string  // Labeled "Collection ID" in the Firebase console
  fieldPath: string
  ttl?: boolean            // Set specified field to have TTL policy and be eligible for deletion
  indexes: array           // Use an empty array to disable indexes on this collectionGroup + fieldPath
    queryScope: string     // One of "COLLECTION", "COLLECTION_GROUP"
    order?: string         // One of "ASCENDING", "DESCENDING"; excludes arrayConfig property
    arrayConfig?: string   // If this parameter used, must be "CONTAINS"; excludes order property

TTL নীতি

একটি TTL নীতি fieldOverrides অ্যারে ব্যবহার করে সক্রিয় বা নিষ্ক্রিয় করা যেতে পারে:

  // Optional, disable index single-field collection group indexes
  fieldOverrides: [
    {
      collectionGroup: "posts",
      fieldPath: "ttlField",
      ttl: "true",  // Explicitly enable TTL on this Field.
      // Disable indexing so empty the indexes array
      indexes: []
    }
  ]

ক্ষেত্রে ডিফল্ট সূচী রাখতে এবং একটি TTL নীতি সক্ষম করতে:

{
  "fieldOverrides": [
    {
      "collectionGroup": "yourCollectionGroup",
      "fieldPath": "yourFieldPath",
      "ttl": true,
      "indexes": [
        { "order": "ASCENDING", "queryScope": "COLLECTION_GROUP" },
        { "order": "DESCENDING", "queryScope": "COLLECTION_GROUP" },
        { "arrayConfig": "CONTAINS", "queryScope": "COLLECTION_GROUP" }
      ]
    }
  ]
}

টাইম-টু-লাইভ (TTL) নীতি সম্পর্কে আরও তথ্যের জন্য অফিসিয়াল ডকুমেন্টেশন পর্যালোচনা করুন।