গুগল ক্লাউড সার্চ স্কিমা হল একটি JSON স্ট্রাকচার যা আপনার ডেটা ইন্ডেক্সিং এবং কোয়েরিতে ব্যবহার করা বস্তু, বৈশিষ্ট্য এবং বিকল্পগুলিকে সংজ্ঞায়িত করে। আপনার কন্টেন্ট কানেক্টর আপনার রিপোজিটরি থেকে ডেটা পড়ে এবং আপনার নিবন্ধিত স্কিমার উপর ভিত্তি করে, স্ট্রাকচার এবং ডেটা ইন্ডেক্স করে।
আপনি API-তে একটি JSON স্কিমা অবজেক্ট প্রদান করে এবং তারপর এটি নিবন্ধন করে একটি স্কিমা তৈরি করতে পারেন। আপনার ডেটা সূচী করার আগে আপনাকে আপনার প্রতিটি রিপোজিটরির জন্য একটি স্কিমা অবজেক্ট নিবন্ধন করতে হবে।
এই ডকুমেন্টটি স্কিমা তৈরির মূল বিষয়গুলি কভার করে। অনুসন্ধানের অভিজ্ঞতা উন্নত করার জন্য আপনার স্কিমা কীভাবে সুরক্ষিত করবেন সে সম্পর্কে তথ্যের জন্য, অনুসন্ধানের মান উন্নত করুন দেখুন।
একটি স্কিমা তৈরি করুন
আপনার ক্লাউড অনুসন্ধান স্কিমা তৈরি করতে ব্যবহৃত পদক্ষেপগুলির একটি তালিকা নিচে দেওয়া হল:
- প্রত্যাশিত ব্যবহারকারীর আচরণ শনাক্ত করুন
- একটি ডেটা উৎস শুরু করুন
- একটি স্কিমা তৈরি করুন
- সম্পূর্ণ নমুনা স্কিমা
- আপনার স্কিমা নিবন্ধন করুন
- আপনার ডেটা সূচী করুন
- আপনার স্কিমা পরীক্ষা করুন
- আপনার স্কিমা টিউন করুন
প্রত্যাশিত ব্যবহারকারীর আচরণ শনাক্ত করুন
আপনার ব্যবহারকারীরা কী ধরণের প্রশ্ন করেন তা অনুমান করা আপনার স্কিমা তৈরির কৌশল নির্ধারণে সহায়তা করে।
উদাহরণস্বরূপ, যখন আপনি একটি মুভি ডাটাবেসের বিরুদ্ধে কোয়েরি ইস্যু করেন, তখন আপনি ব্যবহারকারীদের কাছ থেকে "রবার্ট রেডফোর্ড অভিনীত সকল সিনেমা দেখান" এর মতো একটি কোয়েরি তৈরি করার কথা অনুমান করতে পারেন। অতএব, আপনার স্কিমা অবশ্যই "একজন নির্দিষ্ট অভিনেতা সহ সকল সিনেমা" এর উপর ভিত্তি করে কোয়েরি ফলাফল সমর্থন করবে।
আপনার ব্যবহারকারীর আচরণগত ধরণ প্রতিফলিত করার জন্য আপনার স্কিমা সংজ্ঞায়িত করতে, এই কাজগুলি সম্পাদন করার কথা বিবেচনা করুন:
- বিভিন্ন ব্যবহারকারীর কাছ থেকে আসা বিভিন্ন ধরণের কাঙ্ক্ষিত প্রশ্নের মূল্যায়ন করুন।
- কোয়েরিতে ব্যবহৃত হতে পারে এমন বস্তুগুলি চিহ্নিত করুন। বস্তুগুলি হল সম্পর্কিত ডেটার লজিক্যাল সেট, যেমন চলচ্চিত্রের ডাটাবেসে একটি চলচ্চিত্র।
- বস্তুটি তৈরি করে এমন বৈশিষ্ট্য এবং মানগুলি চিহ্নিত করুন এবং কোয়েরিতে ব্যবহার করা যেতে পারে। বৈশিষ্ট্য হল বস্তুর সূচীযোগ্য বৈশিষ্ট্য; এতে আদিম মান বা অন্যান্য বস্তু অন্তর্ভুক্ত থাকতে পারে। উদাহরণস্বরূপ, একটি চলচ্চিত্রের বস্তুর আদিম মান হিসাবে চলচ্চিত্রের শিরোনাম এবং মুক্তির তারিখের মতো বৈশিষ্ট্য থাকতে পারে। চলচ্চিত্রের বস্তুতে অন্যান্য বস্তুও থাকতে পারে, যেমন কাস্ট সদস্য, যাদের নিজস্ব বৈশিষ্ট্য রয়েছে, যেমন তাদের নাম বা ভূমিকা।
- প্রপার্টির জন্য বৈধ মান চিহ্নিত করুন। মান হল একটি প্রপার্টির জন্য সূচীকৃত প্রকৃত ডেটা। উদাহরণস্বরূপ, আপনার ডাটাবেসে একটি সিনেমার শিরোনাম "রেইডার্স অফ দ্য লস্ট আর্ক" হতে পারে।
- আপনার ব্যবহারকারীদের পছন্দসই বাছাই এবং র্যাঙ্কিং বিকল্পগুলি নির্ধারণ করুন। উদাহরণস্বরূপ, সিনেমাগুলি অনুসন্ধান করার সময়, ব্যবহারকারীরা কালানুক্রমিকভাবে বাছাই করতে এবং দর্শকদের রেটিং অনুসারে র্যাঙ্ক করতে চাইতে পারেন এবং শিরোনাম অনুসারে বর্ণানুক্রমিকভাবে সাজানোর প্রয়োজন হয় না।
- (ঐচ্ছিক) বিবেচনা করুন যে আপনার কোনও সম্পত্তি এমন কোনও নির্দিষ্ট প্রেক্ষাপট উপস্থাপন করে যেখানে অনুসন্ধানগুলি সম্পাদন করা যেতে পারে, যেমন ব্যবহারকারীর কাজের ভূমিকা বা বিভাগ, যাতে প্রেক্ষাপটের উপর ভিত্তি করে স্বয়ংসম্পূর্ণ পরামর্শ প্রদান করা যেতে পারে। উদাহরণস্বরূপ, যারা চলচ্চিত্রের একটি ডাটাবেস অনুসন্ধান করেন, ব্যবহারকারীরা কেবল একটি নির্দিষ্ট ধরণের চলচ্চিত্রে আগ্রহী হতে পারেন। ব্যবহারকারীরা তাদের অনুসন্ধানগুলি কোন ধরণের ফিরে পেতে চান তা নির্ধারণ করবেন, সম্ভবত তাদের ব্যবহারকারীর প্রোফাইলের অংশ হিসাবে। তারপর, যখন কোনও ব্যবহারকারী চলচ্চিত্রের একটি প্রশ্ন টাইপ করতে শুরু করেন, তখন কেবল তাদের পছন্দের ঘরানার সিনেমা, যেমন "অ্যাকশন চলচ্চিত্র", স্বয়ংসম্পূর্ণ পরামর্শের অংশ হিসাবে প্রস্তাবিত হয়।
- অনুসন্ধানে ব্যবহার করা যেতে পারে এমন বস্তু, বৈশিষ্ট্য এবং উদাহরণের মানগুলির একটি তালিকা তৈরি করুন। (এই তালিকাটি কীভাবে ব্যবহার করা হয় তার বিশদ বিবরণের জন্য, অপারেটর বিকল্পগুলি সংজ্ঞায়িত করুন বিভাগটি দেখুন।)
আপনার ডেটা সোর্স শুরু করুন
একটি ডেটা সোর্স হল একটি রিপোজিটরি থেকে প্রাপ্ত ডেটা যা Google ক্লাউডে সূচীবদ্ধ এবং সংরক্ষণ করা হয়েছে। একটি ডেটা সোর্স শুরু করার নির্দেশাবলীর জন্য, তৃতীয় পক্ষের ডেটা সোর্স পরিচালনা করুন দেখুন।
একজন ব্যবহারকারীর অনুসন্ধান ফলাফল ডেটা উৎস থেকে ফেরত পাঠানো হয়। যখন একজন ব্যবহারকারী কোনও অনুসন্ধান ফলাফলে ক্লিক করেন, তখন ক্লাউড অনুসন্ধান ব্যবহারকারীকে ইনডেক্সিং অনুরোধে সরবরাহিত URL ব্যবহার করে প্রকৃত আইটেমটিতে নির্দেশ করে।
আপনার বস্তুগুলি সংজ্ঞায়িত করুন
একটি স্কিমার মধ্যে তথ্যের মৌলিক একক হল অবজেক্ট , যাকে " স্কিমা অবজেক্ট "ও বলা হয়, যা ডেটার একটি লজিক্যাল কাঠামো। চলচ্চিত্রের একটি ডাটাবেসে, ডেটার একটি লজিক্যাল কাঠামো হল "মুভি"। আরেকটি বস্তু "ব্যক্তি" হতে পারে যা সিনেমায় জড়িত কাস্ট এবং ক্রুদের প্রতিনিধিত্ব করে।
স্কিমার প্রতিটি বস্তুর বৈশিষ্ট্য বা বৈশিষ্ট্যের একটি সিরিজ থাকে যা বস্তুটিকে বর্ণনা করে, যেমন একটি চলচ্চিত্রের শিরোনাম এবং সময়কাল, অথবা একজন ব্যক্তির নাম এবং জন্মতারিখ। একটি বস্তুর বৈশিষ্ট্যের মধ্যে আদিম মান বা অন্যান্য বস্তু অন্তর্ভুক্ত থাকতে পারে।
চিত্র ১- এ চলচ্চিত্র এবং ব্যক্তির বস্তু এবং সংশ্লিষ্ট বৈশিষ্ট্য দেখানো হয়েছে।

ক্লাউড সার্চ স্কিমা মূলত objectDefinitions ট্যাগের মধ্যে সংজ্ঞায়িত অবজেক্ট ডেফিনিশন স্টেটমেন্টের একটি তালিকা। নিম্নলিখিত স্কিমা স্নিপেটটি মুভি এবং ব্যক্তি স্কিমা অবজেক্টের জন্য objectDefinitions স্টেটমেন্ট দেখায়।
{
"objectDefinitions": [
{
"name": "movie",
...
},
{
"name": "person",
...
}
]
}
যখন আপনি একটি স্কিমা অবজেক্ট সংজ্ঞায়িত করেন, তখন আপনি অবজেক্টের জন্য একটি name প্রদান করেন যা স্কিমার অন্যান্য সকল অবজেক্টের মধ্যে অনন্য হতে হবে। সাধারণত আপনি একটি name মান ব্যবহার করবেন যা অবজেক্টটিকে বর্ণনা করে, যেমন একটি মুভি অবজেক্টের জন্য movie । স্কিমা পরিষেবাটি ইনডেক্সেবল অবজেক্টের জন্য একটি কী শনাক্তকারী হিসাবে name ক্ষেত্র ব্যবহার করে। name ক্ষেত্র সম্পর্কে আরও তথ্যের জন্য, অবজেক্ট সংজ্ঞা দেখুন।
বস্তুর বৈশিষ্ট্য নির্ধারণ করুন
ObjectDefinition এর রেফারেন্সে উল্লেখিত হিসাবে, বস্তুর নামের পরে options একটি সেট এবং propertyDefinitions এর একটি তালিকা থাকে। options আরও freshnessOptions এবং displayOptions থাকতে পারে। freshnessOptions একটি আইটেমের freshness এর উপর ভিত্তি করে অনুসন্ধান র্যাঙ্কিং সামঞ্জস্য করতে ব্যবহৃত হয়। displayOptions একটি বস্তুর অনুসন্ধান ফলাফলে নির্দিষ্ট লেবেল এবং বৈশিষ্ট্য প্রদর্শিত হবে কিনা তা নির্ধারণ করতে ব্যবহৃত হয়।
propertyDefinitions বিভাগে আপনি কোনও বস্তুর বৈশিষ্ট্য নির্ধারণ করতে পারেন, যেমন সিনেমার শিরোনাম এবং মুক্তির তারিখ।
নিচের স্নিপেটে দুটি বৈশিষ্ট্য সহ movie অবজেক্ট দেখানো হয়েছে: movieTitle এবং releaseDate ।
{
"objectDefinitions": [
{
"name": "movie",
"propertyDefinitions": [
{
"name": "movieTitle",
"isReturnable": true,
"isWildcardSearchable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "title"
}
},
"displayOptions": {
"displayLabel": "Title"
}
},
{
"name": "releaseDate",
"isReturnable": true,
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "released",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
},
"displayOptions": {
"displayLabel": "Release date"
}
...
]
}
]
}
সম্পত্তি সংজ্ঞা নিম্নলিখিত আইটেমগুলি নিয়ে গঠিত:
- একটি
nameস্ট্রিং। - টাইপ-অ্যাগনস্টিক বিকল্পগুলির একটি তালিকা, যেমন পূর্ববর্তী স্নিপেটে
isReturnable। - একটি টাইপ এবং এর সাথে সম্পর্কিত টাইপ-নির্দিষ্ট বিকল্পগুলি, যেমন
textPropertyOptionsএবংretrievalImportanceপূর্ববর্তী স্নিপেটে। - একটি
operatorOptionsযা বর্ণনা করে যে কীভাবে সম্পত্তিটি অনুসন্ধান অপারেটর হিসেবে ব্যবহৃত হয়। - এক বা একাধিক
displayOptions, যেমন পূর্ববর্তী স্নিপেটেdisplayLabel।
একটি প্রপার্টির name অবশ্যই ধারণকারী অবজেক্টের মধ্যে অনন্য হতে হবে, তবে একই নাম অন্যান্য অবজেক্ট এবং সাব-অবজেক্টেও ব্যবহার করা যেতে পারে। চিত্র ১-এ, সিনেমার শিরোনাম এবং মুক্তির তারিখ দুবার সংজ্ঞায়িত করা হয়েছে: একবার movie অবজেক্টে এবং আবার person অবজেক্টের filmography সাব-অবজেক্টে। এই স্কিমাটি movieTitle ক্ষেত্রটি পুনরায় ব্যবহার করে যাতে স্কিমা দুটি ধরণের অনুসন্ধান আচরণ সমর্থন করতে পারে:
- ব্যবহারকারীরা যখন কোনও সিনেমার শিরোনাম অনুসন্ধান করেন তখন সিনেমার ফলাফল দেখান।
- ব্যবহারকারীরা যখন কোনও অভিনেতা অভিনীত কোনও সিনেমার শিরোনাম অনুসন্ধান করেন তখন লোকেদের ফলাফল দেখান।
একইভাবে, স্কিমা releaseDate ক্ষেত্রটি পুনঃব্যবহার করে কারণ এটি দুটি movieTitle ক্ষেত্রের জন্য একই অর্থ বহন করে।
আপনার নিজস্ব স্কিমা তৈরি করার সময়, বিবেচনা করুন যে আপনার রিপোজিটরিতে কীভাবে সম্পর্কিত ক্ষেত্র থাকতে পারে যেখানে এমন ডেটা থাকতে পারে যা আপনি আপনার স্কিমায় একাধিকবার ঘোষণা করতে চান।
টাইপ-অ্যাগনস্টিক বিকল্প যোগ করুন
PropertyDefinition ডেটা টাইপ নির্বিশেষে সকল বৈশিষ্ট্যের জন্য সাধারণ অনুসন্ধান কার্যকারিতা বিকল্পগুলি তালিকাভুক্ত করে।
-
isReturnable- নির্দেশ করে যে প্রোপার্টিটি এমন ডেটা সনাক্ত করে যা Query API এর মাধ্যমে অনুসন্ধান ফলাফলে ফেরত দেওয়া উচিত। উদাহরণের সমস্ত মুভি প্রোপার্টি ফেরতযোগ্য। ফেরত না দেওয়া প্রোপার্টি ব্যবহারকারীকে ফেরত না দিয়েই অনুসন্ধান বা র্যাঙ্কিং ফলাফলের জন্য ব্যবহার করা যেতে পারে। -
isRepeatable- সম্পত্তির জন্য একাধিক মান অনুমোদিত কিনা তা নির্দেশ করে। উদাহরণস্বরূপ, একটি সিনেমার শুধুমাত্র একটি মুক্তির তারিখ থাকে কিন্তু একাধিক অভিনেতা থাকতে পারে। -
isSortable- নির্দেশ করে যে সম্পত্তিটি সাজানোর জন্য ব্যবহার করা যেতে পারে। পুনরাবৃত্তিযোগ্য বৈশিষ্ট্যের ক্ষেত্রে এটি সত্য হতে পারে না। উদাহরণস্বরূপ, সিনেমার ফলাফল মুক্তির তারিখ বা দর্শক রেটিং অনুসারে সাজানো হতে পারে। -
isFacetable- নির্দেশ করে যে বৈশিষ্ট্যটি facets তৈরির জন্য ব্যবহার করা যেতে পারে। অনুসন্ধান ফলাফলগুলিকে পরিমার্জন করার জন্য একটি facet ব্যবহার করা হয় যার মাধ্যমে ব্যবহারকারী প্রাথমিক ফলাফলগুলি দেখেন এবং তারপরে সেই ফলাফলগুলিকে আরও পরিমার্জন করার জন্য মানদণ্ড বা facets যোগ করেন। এই বিকল্পটি object টাইপের বৈশিষ্ট্যগুলির জন্য সত্য হতে পারে না এবং এই বিকল্পটি সেট করার জন্যisReturnableসত্য হতে হবে। অবশেষে, এই বিকল্পটি শুধুমাত্র enum, boolean এবং text বৈশিষ্ট্যগুলির জন্য সমর্থিত। উদাহরণস্বরূপ, আমাদের নমুনা স্কিমায়, আমরা অনুসন্ধান ফলাফলের ইন্টারেক্টিভ পরিমার্জনের জন্যgenre,actorName,userRatingএবংmpaaRatingfacetable তৈরি করতে পারি। -
isWildcardSearchableনির্দেশ করে যে ব্যবহারকারীরা এই বৈশিষ্ট্যের জন্য ওয়াইল্ডকার্ড অনুসন্ধান করতে পারেন। এই বিকল্পটি শুধুমাত্র টেক্সট বৈশিষ্ট্যের ক্ষেত্রেই উপলব্ধ। টেক্সট ক্ষেত্রে ওয়াইল্ডকার্ড অনুসন্ধান কীভাবে কাজ করে তা exactMatchWithOperator ক্ষেত্রের সেট করা মানের উপর নির্ভর করে। যদিexactMatchWithOperatortrueসেট করা থাকে, তাহলে টেক্সট মানটি একটি পারমাণবিক মান হিসাবে টোকেনাইজ করা হয় এবং এর বিপরীতে একটি ওয়াইল্ডকার্ড অনুসন্ধান করা হয়। উদাহরণস্বরূপ, যদি টেক্সট মানটিscience-fictionহয়, তাহলে একটি ওয়াইল্ডকার্ড কোয়েরিscience-*এর সাথে মিলে যায়। যদিexactMatchWithOperatorfalseসেট করা থাকে, তাহলে টেক্সট মানটি টোকেনাইজ করা হয় এবং প্রতিটি টোকেনের বিপরীতে একটি ওয়াইল্ডকার্ড অনুসন্ধান করা হয়। উদাহরণস্বরূপ, যদি টেক্সট মানটি "বিজ্ঞান-কল্পকাহিনী" হয়, তাহলে ওয়াইল্ডকার্ড কোয়েরিsci*বাfi*আইটেমটির সাথে মিলে যায়, কিন্তুscience-*এর সাথে মিলে না।
এই সাধারণ অনুসন্ধান কার্যকারিতা প্যারামিটারগুলি সবই বুলিয়ান মান; এগুলির সকলেরই একটি ডিফল্ট মান false এবং ব্যবহারের জন্য অবশ্যই true সেট করা আবশ্যক।
নিচের টেবিলটি movie অবজেক্টের সমস্ত বৈশিষ্ট্যের জন্য true হিসেবে সেট করা বুলিয়ান প্যারামিটারগুলি দেখায়:
| সম্পত্তি | isReturnable | isRepeatable | isSortable | isFacetable | isWildcardSearchable |
|---|---|---|---|---|---|
movieTitle | সত্য | সত্য | |||
releaseDate | সত্য | সত্য | |||
genre | সত্য | সত্য | সত্য | ||
duration | সত্য | ||||
actorName | সত্য | সত্য | সত্য | সত্য | |
userRating | সত্য | সত্য | |||
mpaaRating | সত্য | সত্য |
genre এবং actorName উভয়েরই isRepeatable true হিসেবে সেট করা আছে কারণ একটি সিনেমা একাধিক ধারার হতে পারে এবং সাধারণত একাধিক অভিনেতা থাকে। একটি সম্পত্তি যদি পুনরাবৃত্তিযোগ্য হয় বা পুনরাবৃত্তিযোগ্য উপ-বস্তুর মধ্যে থাকে তবে তা সাজানো যাবে না।
প্রকার নির্ধারণ করুন
PropertyDefinition রেফারেন্স বিভাগে বেশ কিছু xxPropertyOptions তালিকাভুক্ত করা হয়েছে যেখানে xx একটি নির্দিষ্ট ধরণের, যেমন boolean । প্রপার্টির ডেটা টাইপ সেট করতে, আপনাকে অবশ্যই উপযুক্ত ডেটা-টাইপ অবজেক্টটি সংজ্ঞায়িত করতে হবে। কোনও প্রপার্টির জন্য ডেটা-টাইপ অবজেক্ট সংজ্ঞায়িত করলে সেই প্রপার্টির ডেটা টাইপ প্রতিষ্ঠিত হয়। উদাহরণস্বরূপ, movieTitle প্রপার্টির জন্য textPropertyOptions সংজ্ঞায়িত করলে বোঝা যায় যে মুভির শিরোনামটি টেক্সট ধরণের। নিম্নলিখিত স্নিপেটে textPropertyOptions ডেটা টাইপ সেট করে movieTitle প্রপার্টিটি দেখানো হয়েছে।
{
"name": "movieTitle",
"isReturnable": true,
"isWildcardSearchable": true,
"textPropertyOptions": {
...
},
...
},
একটি প্রপার্টিতে শুধুমাত্র একটি সম্পর্কিত ডেটা টাইপ থাকতে পারে। উদাহরণস্বরূপ, আমাদের মুভি স্কিমায়, releaseDate শুধুমাত্র একটি তারিখ (যেমন, 2016-01-13 ) অথবা একটি স্ট্রিং (যেমন, January 13, 2016 ) হতে পারে, কিন্তু উভয়ই নয়।
নমুনা মুভি স্কিমার বৈশিষ্ট্যগুলির জন্য ডেটা টাইপ নির্দিষ্ট করতে ব্যবহৃত ডেটা-টাইপ অবজেক্টগুলি এখানে দেওয়া হল:
| সম্পত্তি | ডেটা-টাইপ অবজেক্ট |
|---|---|
movieTitle | textPropertyOptions |
releaseDate | datePropertyOptions |
genre | enumPropertyOptions |
duration | textPropertyOptions |
actorName | textPropertyOptions |
userRating | integerPropertyOptions |
mpaaRating | textPropertyOptions |
আপনি কোন ডেটা টাইপের প্রপার্টি বেছে নেবেন তা আপনার প্রত্যাশিত ব্যবহারের ক্ষেত্রের উপর নির্ভর করে। এই মুভি স্কিমার কাল্পনিক পরিস্থিতিতে, ব্যবহারকারীরা ফলাফল কালানুক্রমিকভাবে সাজাতে চাইবেন বলে আশা করা হচ্ছে, তাই releaseDate হল একটি তারিখের বস্তু। উদাহরণস্বরূপ, যদি বছরের পর বছর ধরে ডিসেম্বরের রিলিজ এবং জানুয়ারির রিলিজের তুলনা করার একটি প্রত্যাশিত ব্যবহার থাকে, তাহলে একটি স্ট্রিং ফর্ম্যাট কার্যকর হতে পারে।
টাইপ-নির্দিষ্ট বিকল্পগুলি কনফিগার করুন
PropertyDefinition রেফারেন্স বিভাগটি প্রতিটি ধরণের জন্য বিকল্পগুলির সাথে লিঙ্ক করে। enumPropertyOptions এ possibleValues এর তালিকা ছাড়া বেশিরভাগ টাইপ-নির্দিষ্ট বিকল্প ঐচ্ছিক। অতিরিক্তভাবে, orderedRanking বিকল্পটি আপনাকে একে অপরের সাথে সম্পর্কিত মানগুলিকে র্যাঙ্ক করতে দেয়। নিম্নলিখিত স্নিপেটে movieTitle প্রপার্টি দেখানো হয়েছে যেখানে textPropertyOptions ডেটা টাইপ সেট করে এবং retrievalImportance টাইপ-নির্দিষ্ট বিকল্পটি দেখায়।
{
"name": "movieTitle",
"isReturnable": true,
"isWildcardSearchable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
...
},
...
}
নমুনা স্কিমায় ব্যবহৃত অতিরিক্ত টাইপ-নির্দিষ্ট বিকল্পগুলি এখানে দেওয়া হল:
| সম্পত্তি | আদর্শ | প্রকার-নির্দিষ্ট বিকল্পগুলি |
|---|---|---|
movieTitle | textPropertyOptions | retrievalImportance |
releaseDate | datePropertyOptions | |
genre | enumPropertyOptions | |
duration | textPropertyOptions | |
actorName | textPropertyOptions | |
userRating | integerPropertyOptions | orderedRanking , maximumValue |
mpaaRating | textPropertyOptions |
অপারেটর বিকল্পগুলি সংজ্ঞায়িত করুন
টাইপ-নির্দিষ্ট বিকল্পগুলি ছাড়াও, প্রতিটি ধরণের ঐচ্ছিক operatorOptions একটি সেট রয়েছে। এই বিকল্পগুলি বর্ণনা করে যে কীভাবে সম্পত্তিটি অনুসন্ধান অপারেটর হিসাবে ব্যবহৃত হয়। নিম্নলিখিত স্নিপেটে movieTitle সম্পত্তিটি textPropertyOptions ডেটা টাইপ সেট করে এবং retrievalImportance এবং operatorOptions টাইপ-নির্দিষ্ট বিকল্পগুলি দেখায়।
{
"name": "movieTitle",
"isReturnable": true,
"isWildcardSearchable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "title"
}
},
...
}
প্রতিটি operatorOptions একটি operatorName থাকে, যেমন movieTitle এর জন্য title । অপারেটরের নাম হল সম্পত্তির জন্য অনুসন্ধান অপারেটর । একটি অনুসন্ধান অপারেটর হল প্রকৃত প্যারামিটার যা ব্যবহারকারীরা কোনও অনুসন্ধান সংকুচিত করার সময় ব্যবহার করবেন বলে আশা করেন। উদাহরণস্বরূপ, শিরোনামের উপর ভিত্তি করে সিনেমা অনুসন্ধান করতে, ব্যবহারকারীকে title:movieName টাইপ করতে হবে, যেখানে movieName হল একটি সিনেমার নাম।
অপারেটরের নাম এবং প্রপার্টির নামের মধ্যে মিল থাকতে হবে না। পরিবর্তে, আপনার এমন অপারেটরের নাম ব্যবহার করা উচিত যা আপনার প্রতিষ্ঠানের ব্যবহারকারীদের দ্বারা ব্যবহৃত সবচেয়ে সাধারণ শব্দগুলিকে প্রতিফলিত করে। উদাহরণস্বরূপ, যদি আপনার ব্যবহারকারীরা কোনও সিনেমার শিরোনামের জন্য "শিরোনাম" এর পরিবর্তে "নাম" শব্দটি পছন্দ করেন, তাহলে অপারেটরের নামটি "নাম" তে সেট করা উচিত।
যতক্ষণ পর্যন্ত সমস্ত বৈশিষ্ট্য একই ধরণের হয়ে যায়, ততক্ষণ পর্যন্ত আপনি একাধিক বৈশিষ্ট্যের জন্য একই অপারেটর নাম ব্যবহার করতে পারেন। কোনও অনুসন্ধানের সময় একটি ভাগ করা অপারেটর নাম ব্যবহার করার সময়, সেই অপারেটর নাম ব্যবহার করে সমস্ত বৈশিষ্ট্য পুনরুদ্ধার করা হয়। উদাহরণস্বরূপ, ধরুন মুভি অবজেক্টে plotSummary এবং plotSynopsis বৈশিষ্ট্য ছিল এবং এই প্রতিটি বৈশিষ্ট্যের plot এর একটি operatorName ছিল। যতক্ষণ পর্যন্ত এই উভয় বৈশিষ্ট্যই text ( textPropertyOptions ) হয়, ততক্ষণ পর্যন্ত plot অনুসন্ধান অপারেটর ব্যবহার করে একটি একক প্রশ্ন উভয়ই পুনরুদ্ধার করে।
operatorName ছাড়াও, সাজানোর যোগ্য বৈশিষ্ট্যগুলিতে operatorOptions তে lessThanOperatorName এবং greaterThanOperatorName ক্ষেত্র থাকতে পারে। ব্যবহারকারীরা জমা দেওয়া মানের তুলনার উপর ভিত্তি করে প্রশ্ন তৈরি করতে এই বিকল্পগুলি ব্যবহার করতে পারেন।
অবশেষে, operatorOptions তে textOperatorOptions একটি exactMatchWithOperator ফিল্ড আছে। যদি আপনি exactMatchWithOperator true তে সেট করেন, তাহলে কোয়েরি স্ট্রিংটি কেবলমাত্র টেক্সটের মধ্যেই পাওয়া যাবে না, বরং পুরো প্রোপার্টি মানের সাথে মিলবে। অপারেটর অনুসন্ধান এবং ফ্যাসেট ম্যাচগুলিতে টেক্সট মানকে একটি পারমাণবিক মান হিসেবে বিবেচনা করা হয়।
উদাহরণস্বরূপ, বই বা সিনেমার অবজেক্টগুলিকে জেনার প্রোপার্টি সহ ইন্ডেক্স করার কথা বিবেচনা করুন। জেনারগুলিতে "সায়েন্স-ফিকশন", "সায়েন্স" এবং "ফিকশন" অন্তর্ভুক্ত থাকতে পারে। exactMatchWithOperator কে false বা বাদ দেওয়া হলে, একটি জেনার অনুসন্ধান করা বা "সায়েন্স" বা "ফিকশন" দিক নির্বাচন করা হলে "সায়েন্স-ফিকশন" এর ফলাফলও আসবে কারণ টেক্সটটি টোকেনাইজ করা হয়েছে এবং "সায়েন্স" এবং "ফিকশন" টোকেনগুলি "সায়েন্স-ফিকশন" এ বিদ্যমান। যখন exactMatchWithOperator true হয়, তখন টেক্সটটিকে একটি একক টোকেন হিসাবে বিবেচনা করা হয়, তাই "সায়েন্স" বা "ফিকশন" কোনটিই "সায়েন্স-ফিকশন" এর সাথে মেলে না।
(ঐচ্ছিক) displayOptions বিভাগটি যোগ করুন
যেকোনো propertyDefinition বিভাগের শেষে একটি ঐচ্ছিক displayOptions বিভাগ থাকে। এই বিভাগে একটি displayLabel স্ট্রিং রয়েছে। displayLabel হল প্রপার্টির জন্য একটি প্রস্তাবিত, ব্যবহারকারী-বান্ধব টেক্সট লেবেল। যদি ObjectDisplayOptions ব্যবহার করে প্রপার্টিটি প্রদর্শনের জন্য কনফিগার করা থাকে, তাহলে এই লেবেলটি প্রপার্টির সামনে প্রদর্শিত হয়। যদি প্রপার্টিটি প্রদর্শনের জন্য কনফিগার করা থাকে এবং displayLabel সংজ্ঞায়িত না থাকে, তাহলে শুধুমাত্র প্রপার্টির মান প্রদর্শিত হয়।
নিচের স্নিপেটে 'Title' তে সেট করা একটি displayLabel সহ movieTitle প্রপার্টি দেখানো হয়েছে।
{
"name": "movieTitle",
"isReturnable": true,
"isWildcardSearchable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "title"
}
},
"displayOptions": {
"displayLabel": "Title"
}
},
নমুনা স্কিমায় movie অবজেক্টের সকল বৈশিষ্ট্যের জন্য displayLabel মানগুলি নিম্নরূপ:
| সম্পত্তি | displayLabel |
|---|---|
movieTitle | Title |
releaseDate | Release date |
genre | Genre |
duration | Run length |
actorName | Actor |
userRating | Audience score |
mpaaRating | MPAA rating |
(ঐচ্ছিক) suggestionFilteringOperators[] বিভাগ
যেকোনো propertyDefinition বিভাগের শেষে একটি ঐচ্ছিক suggestionFilteringOperators[] বিভাগ থাকে। স্বয়ংক্রিয়ভাবে প্রস্তাবনা ফিল্টার করার জন্য ব্যবহৃত একটি বৈশিষ্ট্য সংজ্ঞায়িত করতে এই বিভাগটি ব্যবহার করুন। উদাহরণস্বরূপ, ব্যবহারকারীর পছন্দের সিনেমার ধরণের উপর ভিত্তি করে পরামর্শ ফিল্টার করার জন্য আপনি genre অপারেটরকে সংজ্ঞায়িত করতে পারেন। তারপর, যখন ব্যবহারকারী তাদের অনুসন্ধান কোয়েরি টাইপ করেন, তখন কেবলমাত্র তাদের পছন্দের ধারার সাথে মেলে এমন সিনেমাগুলি স্বয়ংক্রিয়ভাবে প্রস্তাবনার অংশ হিসেবে প্রদর্শিত হয়।
আপনার স্কিমা নিবন্ধন করুন
ক্লাউড সার্চ কোয়েরি থেকে স্ট্রাকচার্ড ডেটা ফেরত পেতে, আপনাকে ক্লাউড সার্চ স্কিমা পরিষেবার সাথে আপনার স্কিমা নিবন্ধন করতে হবে। স্কিমা নিবন্ধনের জন্য ডেটা সোর্স শুরু করার ধাপের সময় আপনি যে ডেটা সোর্স আইডিটি পেয়েছেন তা প্রয়োজন।
ডেটা সোর্স আইডি ব্যবহার করে, আপনার স্কিমা নিবন্ধনের জন্য একটি UpdateSchema অনুরোধ জারি করুন।
UpdateSchema রেফারেন্স পৃষ্ঠায় বিস্তারিতভাবে বর্ণনা করা হয়েছে, আপনার স্কিমা নিবন্ধনের জন্য নিম্নলিখিত HTTP অনুরোধটি ইস্যু করুন:
PUT https://cloudsearch.googleapis.com/v1/indexing/{name=datasources/*}/schema
আপনার অনুরোধের মূল অংশে নিম্নলিখিতগুলি থাকা উচিত:
{
"validateOnly": // true or false,
"schema": {
// ... Your complete schema object ...
}
}
আপনার স্কিমাটি নিবন্ধন না করেই তার বৈধতা পরীক্ষা করার জন্য validateOnly বিকল্পটি ব্যবহার করুন।
আপনার ডেটা সূচী করুন
আপনার স্কিমা নিবন্ধিত হয়ে গেলে, ইনডেক্স কল ব্যবহার করে ডেটা সোর্স পূরণ করুন। ইনডেক্সিং সাধারণত আপনার কন্টেন্ট কানেক্টরের মধ্যে করা হয়।
মুভি স্কিমা ব্যবহার করে, একটি একক মুভির জন্য একটি REST API ইনডেক্সিং অনুরোধ এইরকম দেখাবে:
{
"name": "datasource/<data_source_id>/items/titanic",
"acl": {
"readers": [
{
"gsuitePrincipal": {
"gsuiteDomain": true
}
}
]
},
"metadata": {
"title": "Titanic",
"sourceRepositoryUrl": "http://www.imdb.com/title/tt2234155/?ref_=nv_sr_1",
"objectType": "movie"
},
"structuredData": {
"object": {
"properties": [
{
"name": "movieTitle",
"textValues": {
"values": [
"Titanic"
]
}
},
{
"name": "releaseDate",
"dateValues": {
"values": [
{
"year": 1997,
"month": 12,
"day": 19
}
]
}
},
{
"name": "actorName",
"textValues": {
"values": [
"Leonardo DiCaprio",
"Kate Winslet",
"Billy Zane"
]
}
},
{
"name": "genre",
"enumValues": {
"values": [
"Drama",
"Action"
]
}
},
{
"name": "userRating",
"integerValues": {
"values": [
8
]
}
},
{
"name": "mpaaRating",
"textValues": {
"values": [
"PG-13"
]
}
},
{
"name": "duration",
"textValues": {
"values": [
"3 h 14 min"
]
}
}
]
}
},
"content": {
"inlineContent": "A seventeen-year-old aristocrat falls in love with a kind but poor artist aboard the luxurious, ill-fated R.M.S. Titanic.",
"contentFormat": "TEXT"
},
"version": "01",
"itemType": "CONTENT_ITEM"
}
লক্ষ্য করুন কিভাবে objectType ক্ষেত্রের movie মান স্কিমার অবজেক্টের সংজ্ঞা নামের সাথে মিলে যায়। এই দুটি মান মিলিয়ে, ক্লাউড সার্চ জানে যে ইন্ডেক্সিংয়ের সময় কোন স্কিমা অবজেক্ট ব্যবহার করতে হবে।
এছাড়াও লক্ষ্য করুন যে স্কিমা প্রপার্টির ইনডেক্সিং কীভাবে releaseDate এর year , month এবং day এর উপ-প্রপার্টি ব্যবহার করে যা এটি উত্তরাধিকার সূত্রে পায় কারণ এটি datePropertyOptions ব্যবহার করে একটি date ডেটা টাইপ হিসাবে সংজ্ঞায়িত করা হয়। তবে, যেহেতু year , month এবং day স্কিমায় সংজ্ঞায়িত করা হয়নি, তাই আপনি পৃথকভাবে এই বৈশিষ্ট্যগুলির একটিতে (যেমন, year ) অনুসন্ধান করতে পারবেন না।
এবং মানগুলির তালিকা ব্যবহার করে পুনরাবৃত্তিযোগ্য সম্পত্তি actorName কীভাবে সূচীবদ্ধ করা হয় তাও লক্ষ্য করুন।
সম্ভাব্য ইনডেক্সিং সমস্যা চিহ্নিত করা
স্কিমা এবং ইনডেক্সিং সম্পর্কিত দুটি সবচেয়ে সাধারণ সমস্যা হল:
আপনার ইন্ডেক্সিং অনুরোধে একটি স্কিমা অবজেক্ট বা প্রপার্টির নাম রয়েছে যা স্কিমা পরিষেবার সাথে নিবন্ধিত ছিল না। এই সমস্যার কারণে প্রপার্টি বা অবজেক্টটি উপেক্ষা করা হচ্ছে।
আপনার ইন্ডেক্সিং অনুরোধের প্রোপার্টির টাইপ মান স্কিমায় নিবন্ধিত টাইপের থেকে আলাদা। এই সমস্যার কারণে ক্লাউড সার্চ ইন্ডেক্সিংয়ের সময় একটি ত্রুটি দেখা দেয়।
বিভিন্ন ধরণের কোয়েরি দিয়ে আপনার স্কিমা পরীক্ষা করুন
একটি বৃহৎ উৎপাদন ডেটা সংগ্রহস্থলের জন্য আপনার স্কিমা নিবন্ধন করার আগে, একটি ছোট পরীক্ষা ডেটা সংগ্রহস্থল দিয়ে পরীক্ষা করার কথা বিবেচনা করুন। একটি ছোট পরীক্ষা সংগ্রহস্থল দিয়ে পরীক্ষা করার মাধ্যমে আপনি দ্রুত আপনার স্কিমায় সমন্বয় করতে পারবেন এবং বৃহৎ সূচক বা বিদ্যমান উৎপাদন সূচককে প্রভাবিত না করেই সূচীকৃত ডেটা মুছে ফেলতে পারবেন। একটি পরীক্ষা ডেটা সংগ্রহস্থলের জন্য, একটি ACL তৈরি করুন যা শুধুমাত্র একজন পরীক্ষা ব্যবহারকারীকে অনুমোদন দেয় যাতে অন্য ব্যবহারকারীরা অনুসন্ধান ফলাফলে এই ডেটা দেখতে না পান।
অনুসন্ধান ক্যোয়ারী যাচাই করার জন্য একটি অনুসন্ধান ইন্টারফেস তৈরি করতে, অনুসন্ধান ইন্টারফেস দেখুন
এই বিভাগে বেশ কয়েকটি ভিন্ন উদাহরণ কোয়েরি রয়েছে যা আপনি একটি মুভি স্কিমা পরীক্ষা করার জন্য ব্যবহার করতে পারেন।
একটি জেনেরিক কোয়েরি দিয়ে পরীক্ষা করুন
একটি জেনেরিক কোয়েরি ডেটা সোর্সের সমস্ত আইটেম ফেরত পাঠায় যেখানে একটি নির্দিষ্ট স্ট্রিং থাকে। একটি সার্চ ইন্টারফেস ব্যবহার করে, আপনি "টাইটানিক" শব্দটি টাইপ করে এবং Return টিপে একটি মুভি ডেটা সোর্সের বিরুদ্ধে জেনেরিক কোয়েরি চালাতে পারেন। "টাইটানিক" শব্দটি সহ সমস্ত সিনেমা অনুসন্ধান ফলাফলে ফেরত পাঠানো উচিত।
একজন অপারেটরের সাথে পরীক্ষা করুন
কোয়েরিতে একটি অপারেটর যোগ করলে ফলাফলগুলি সেই অপারেটর মানের সাথে মেলে এমন আইটেমগুলিতে সীমাবদ্ধ থাকে। উদাহরণস্বরূপ, আপনি একটি নির্দিষ্ট অভিনেতা অভিনীত সমস্ত সিনেমা খুঁজে পেতে actor অপারেটর ব্যবহার করতে চাইতে পারেন। একটি অনুসন্ধান ইন্টারফেস ব্যবহার করে, আপনি কেবল "actor:Zane" এর মতো একটি operator=value জোড়া টাইপ করে এবং Return টিপে এই অপারেটর কোয়েরিটি সম্পাদন করতে পারেন। Zane অভিনেতা হিসাবে থাকা সমস্ত সিনেমা অনুসন্ধান ফলাফলে ফেরত দেওয়া উচিত।
আপনার স্কিমা টিউন করুন
আপনার স্কিমা এবং ডেটা ব্যবহারের পরে, আপনার ব্যবহারকারীদের জন্য কী কাজ করছে এবং কী কাজ করছে না তা পর্যবেক্ষণ করতে থাকুন। নিম্নলিখিত পরিস্থিতিগুলির জন্য আপনার স্কিমা সামঞ্জস্য করার কথা বিবেচনা করা উচিত:
- এমন একটি ক্ষেত্র সূচীবদ্ধ করা যা আগে সূচীবদ্ধ করা হয়নি। উদাহরণস্বরূপ, আপনার ব্যবহারকারীরা পরিচালকের নামের উপর ভিত্তি করে বারবার সিনেমা অনুসন্ধান করতে পারেন, তাই আপনি অপারেটর হিসাবে পরিচালকের নাম সমর্থন করার জন্য আপনার স্কিমা সামঞ্জস্য করতে পারেন।
- ব্যবহারকারীর প্রতিক্রিয়ার উপর ভিত্তি করে অনুসন্ধান অপারেটরের নাম পরিবর্তন করা। অপারেটরের নামগুলি ব্যবহারকারী-বান্ধব করার জন্য তৈরি। যদি আপনার ব্যবহারকারীরা ক্রমাগত ভুল অপারেটরের নাম "মনে রাখেন", তাহলে আপনি এটি পরিবর্তন করার কথা বিবেচনা করতে পারেন।
স্কিমা পরিবর্তনের পরে পুনরায় সূচীকরণ
আপনার স্কিমার নিম্নলিখিত মানগুলির কোনও পরিবর্তন করার জন্য আপনার ডেটা পুনরায় সূচী করার প্রয়োজন নেই । আপনি কেবল একটি নতুন UpdateSchema অনুরোধ জমা দিতে পারেন এবং আপনার সূচী কাজ করতে থাকবে:
- অপারেটরের নাম।
- পূর্ণসংখ্যার সর্বনিম্ন এবং সর্বোচ্চ মান।
- পূর্ণসংখ্যা এবং এনাম অনুসারে ক্রমানুসারে র্যাঙ্কিং।
- সতেজতার বিকল্প।
- প্রদর্শনের বিকল্পগুলি।
নিম্নলিখিত পরিবর্তনগুলির জন্য, পূর্বে সূচীকৃত ডেটা পূর্বে নিবন্ধিত স্কিমা অনুসারে কাজ করতে থাকবে। তবে, যদি এই পরিবর্তনগুলি থাকে তবে আপডেট করা স্কিমার উপর ভিত্তি করে পরিবর্তনগুলি দেখতে আপনাকে বিদ্যমান এন্ট্রিগুলিকে পুনরায় সূচী করতে হবে:
- একটি নতুন সম্পত্তি বা বস্তু যোগ করা বা অপসারণ করা
-
isReturnable,isFacetable, অথবাisSortablefalseথেকেtrueএ পরিবর্তন করা।
আপনার যদি স্পষ্ট ব্যবহারের কেস এবং প্রয়োজন থাকে তবেই কেবল আপনার isFacetable বা isSortable true হিসেবে সেট করা উচিত।
অবশেষে, যখন আপনি একটি প্রপার্টি isSuggestable চিহ্নিত করে আপনার স্কিমা আপডেট করেন, তখন আপনাকে অবশ্যই আপনার ডেটা পুনরায় ইনডেক্স করতে হবে যার ফলে সেই প্রপার্টির জন্য অটোকম্পলিট ব্যবহারে বিলম্ব হয়।
অনুমোদিত সম্পত্তি পরিবর্তন
কিছু স্কিমা পরিবর্তন অনুমোদিত নয়, এমনকি যদি আপনি আপনার ডেটা পুনরায় ইনডেক্স করেন, কারণ এটি ইনডেক্স ভেঙে ফেলবে অথবা খারাপ বা অসঙ্গত সার্চ ফলাফল তৈরি করবে। এর মধ্যে রয়েছে নিম্নলিখিত পরিবর্তনগুলি:
- সম্পত্তির ডেটা টাইপ।
- সম্পত্তির নাম।
-
exactMatchWithOperatorসেটিং। -
retrievalImportanceসেটিং।
তবে, এই সীমাবদ্ধতা কাটিয়ে ওঠার একটি উপায় আছে।
একটি জটিল স্কিমা পরিবর্তন করুন
খারাপ সার্চ ফলাফল বা ভাঙা সার্চ ইনডেক্স তৈরি করতে পারে এমন পরিবর্তন এড়াতে, ক্লাউড সার্চ রিপোজিটরি ইন্ডেক্স করার পরে UpdateSchema অনুরোধে কিছু ধরণের পরিবর্তন প্রতিরোধ করে। উদাহরণস্বরূপ, কোনও প্রপার্টি সেট করার পরে ডেটা টাইপ বা নাম পরিবর্তন করা যাবে না। এই পরিবর্তনগুলি একটি সাধারণ UpdateSchema অনুরোধের মাধ্যমে অর্জন করা যাবে না, এমনকি যদি আপনি আপনার ডেটা পুনরায় ইনডেক্স করেন।
যেসব পরিস্থিতিতে আপনাকে আপনার স্কিমায় অন্যথায় অননুমোদিত পরিবর্তন করতে হয়, সেখানে আপনি প্রায়শই একাধিক অনুমোদিত পরিবর্তন করতে পারেন যা একই প্রভাব অর্জন করে। সাধারণভাবে, এর মধ্যে প্রথমে একটি পুরাতন অবজেক্ট ডেফিনিশন থেকে একটি নতুনতে ইনডেক্স করা প্রোপার্টি স্থানান্তর করা এবং তারপর একটি ইনডেক্সিং রিকোয়েস্ট পাঠানো অন্তর্ভুক্ত থাকে যা শুধুমাত্র নতুন প্রোপার্টি ব্যবহার করে।
নিম্নলিখিত ধাপগুলি দেখায় কিভাবে একটি সম্পত্তির ডেটা টাইপ বা নাম পরিবর্তন করতে হয়:
- আপনার স্কিমার অবজেক্ট ডেফিনিশনে একটি নতুন প্রোপার্টি যোগ করুন। আপনি যে প্রোপার্টি পরিবর্তন করতে চান তার থেকে আলাদা একটি নাম ব্যবহার করুন।
- নতুন সংজ্ঞা সহ UpdateSchema অনুরোধটি ইস্যু করুন। অনুরোধে নতুন এবং পুরাতন উভয় বৈশিষ্ট্য সহ সম্পূর্ণ স্কিমা পাঠাতে ভুলবেন না।
ডেটা রিপোজিটরি থেকে ইনডেক্সটি ব্যাকফিল করুন। ইনডেক্সটি ব্যাকফিল করার জন্য, নতুন প্রোপার্টি ব্যবহার করে সমস্ত ইনডেক্সিং অনুরোধ পাঠান, কিন্তু পুরাতন প্রোপার্টি ব্যবহার করে নয় , কারণ এর ফলে কোয়েরি ম্যাচগুলি দ্বিগুণ গণনা করা হবে।
- ব্যাকফিল ইনডেক্স করার সময়, নতুন প্রোপার্টি আছে কিনা তা পরীক্ষা করুন এবং অসঙ্গতিপূর্ণ আচরণ এড়াতে পুরাতন প্রোপার্টিতে ডিফল্ট করুন।
- ব্যাকফিল সম্পন্ন হওয়ার পরে, যাচাই করার জন্য পরীক্ষামূলক প্রশ্ন চালান।
পুরাতন প্রপার্টি মুছে ফেলুন। পুরাতন প্রপার্টির নাম ছাড়াই আরেকটি UpdateSchema রিকোয়েস্ট ইস্যু করুন এবং ভবিষ্যতের ইনডেক্সিং রিকোয়েস্টে পুরাতন প্রপার্টির নাম ব্যবহার বন্ধ করুন।
পুরাতন প্রপার্টির যেকোনো ব্যবহার নতুন প্রপার্টিতে স্থানান্তর করুন। উদাহরণস্বরূপ, যদি আপনি প্রপার্টির নাম ক্রিয়েটর থেকে লেখকে পরিবর্তন করেন, তাহলে আপনাকে অবশ্যই আপনার কোয়েরি কোড আপডেট করতে হবে যাতে লেখক পূর্বে ক্রিয়েটরকে উল্লেখ করেছিলেন।
ক্লাউড সার্চ যেকোনো মুছে ফেলা সম্পত্তি বা বস্তুর রেকর্ড ৩০ দিনের জন্য রাখে যাতে অপ্রত্যাশিত ইনডেক্সিং ফলাফলের কারণ হতে পারে এমন যেকোনো পুনঃব্যবহার থেকে রক্ষা পায়। এই ৩০ দিনের মধ্যে, আপনার মুছে ফেলা বস্তু বা সম্পত্তির সমস্ত ব্যবহার থেকে দূরে সরে যাওয়া উচিত, যার মধ্যে ভবিষ্যতের ইনডেক্স অনুরোধ থেকে সেগুলি বাদ দেওয়াও অন্তর্ভুক্ত। এটি নিশ্চিত করে যে আপনি যদি পরে সেই সম্পত্তি বা বস্তুটি পুনরায় স্থাপন করার সিদ্ধান্ত নেন, তাহলে আপনি এমনভাবে তা করতে পারবেন যাতে আপনার ইনডেক্সের সঠিকতা বজায় থাকে।
আকারের সীমাবদ্ধতা জানুন
ক্লাউড সার্চ স্ট্রাকচার্ড ডেটা অবজেক্ট এবং স্কিমার আকারের উপর সীমা আরোপ করে। এই সীমাগুলি হল:
- শীর্ষ-স্তরের বস্তুর সর্বোচ্চ সংখ্যা হল ১০টি বস্তু।
- একটি স্ট্রাকচার্ড ডেটা হায়ারার্কির সর্বোচ্চ গভীরতা হল ১০টি স্তর।
- একটি বস্তুর মোট ক্ষেত্রের সংখ্যা ১০০০-এর মধ্যে সীমাবদ্ধ, যার মধ্যে আদিম ক্ষেত্রের সংখ্যা এবং প্রতিটি নেস্টেড বস্তুর ক্ষেত্রের সংখ্যার যোগফল অন্তর্ভুক্ত থাকে।
পরবর্তী পদক্ষেপ
আপনার পরবর্তী কিছু পদক্ষেপ এখানে দেওয়া হল:
আপনার স্কিমা পরীক্ষা করার জন্য একটি অনুসন্ধান ইন্টারফেস তৈরি করুন।
অনুসন্ধানের মান উন্নত করতে আপনার স্কিমা টিউন করুন।
আপনার কোম্পানিতে সাধারণত ব্যবহৃত শব্দগুলির সমার্থক শব্দ সংজ্ঞায়িত করতে
_dictionaryEntryস্কিমা কীভাবে ব্যবহার করবেন তা শিখুন।_dictionaryEntryস্কিমা ব্যবহার করতে, সমার্থক শব্দ সংজ্ঞায়িত করুন দেখুন।একটি সংযোগকারী তৈরি করুন।