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