একটি Google ক্লাউড অনুসন্ধান স্কিমা হল একটি JSON কাঠামো যা আপনার ডেটা ইন্ডেক্সিং এবং অনুসন্ধানে ব্যবহার করা বস্তু, বৈশিষ্ট্য এবং বিকল্পগুলিকে সংজ্ঞায়িত করে৷ আপনার বিষয়বস্তু সংযোগকারী আপনার সংগ্রহস্থল থেকে ডেটা পড়ে এবং, আপনার নিবন্ধিত স্কিমার উপর ভিত্তি করে, কাঠামো এবং ডেটা সূচী করে।
আপনি API এ একটি JSON স্কিমা অবজেক্ট প্রদান করে এবং তারপরে এটি নিবন্ধন করে একটি স্কিমা তৈরি করতে পারেন। আপনার ডেটা ইনডেক্স করার আগে আপনাকে আপনার প্রতিটি সংগ্রহস্থলের জন্য একটি স্কিমা অবজেক্ট নিবন্ধন করতে হবে।
এই নথিটি স্কিমা তৈরির মূল বিষয়গুলি কভার করে৷ অনুসন্ধানের অভিজ্ঞতা উন্নত করতে কীভাবে আপনার স্কিমা টিউন করবেন সে সম্পর্কে তথ্যের জন্য, অনুসন্ধানের গুণমান উন্নত করুন দেখুন।
একটি স্কিমা তৈরি করুন
আপনার ক্লাউড সার্চ স্কিমা তৈরি করতে ব্যবহৃত ধাপগুলির একটি তালিকা নিচে দেওয়া হল:
- প্রত্যাশিত ব্যবহারকারী আচরণ সনাক্ত করুন
- একটি ডেটা উৎস শুরু করুন
- একটি স্কিমা তৈরি করুন
- সম্পূর্ণ নমুনা স্কিমা
- আপনার স্কিমা নিবন্ধন করুন
- আপনার ডেটা সূচক করুন
- আপনার স্কিমা পরীক্ষা করুন
- আপনার স্কিমা টিউন
প্রত্যাশিত ব্যবহারকারী আচরণ সনাক্ত করুন
আপনার ব্যবহারকারীরা যে ধরণের প্রশ্নগুলি করে তা অনুমান করা আপনার স্কিমা তৈরি করার জন্য আপনার কৌশলকে নির্দেশ করতে সহায়তা করে৷
উদাহরণস্বরূপ, একটি মুভি ডাটাবেসের বিরুদ্ধে ক্যোয়ারী ইস্যু করার সময়, আপনি অনুমান করতে পারেন যে ব্যবহারকারী একটি ক্যোয়ারী করছেন যেমন "আমাকে রবার্ট রেডফোর্ড অভিনীত সমস্ত সিনেমা দেখান।" আপনার স্কিমা, তাই, "একটি নির্দিষ্ট অভিনেতা সহ সমস্ত চলচ্চিত্র" এর উপর ভিত্তি করে প্রশ্নের ফলাফলগুলিকে সমর্থন করতে হবে৷
আপনার ব্যবহারকারীর আচরণগত নিদর্শন প্রতিফলিত করার জন্য আপনার স্কিমা সংজ্ঞায়িত করতে, এই কাজগুলি সম্পাদন করার কথা বিবেচনা করুন:
- বিভিন্ন ব্যবহারকারীর কাছ থেকে পছন্দসই প্রশ্নের একটি বৈচিত্র্যপূর্ণ সেট মূল্যায়ন করুন।
- ক্যোয়ারী ব্যবহার করা হতে পারে যে বস্তু সনাক্ত করুন. অবজেক্টগুলি হল সম্পর্কিত ডেটার যৌক্তিক সেট, যেমন চলচ্চিত্রের একটি ডাটাবেসে একটি চলচ্চিত্র।
- বৈশিষ্ট্য এবং মানগুলি সনাক্ত করুন যা বস্তুটি রচনা করে এবং প্রশ্নগুলিতে ব্যবহৃত হতে পারে। বৈশিষ্ট্য হল বস্তুর সূচকযোগ্য বৈশিষ্ট্য; তারা আদিম মান বা অন্যান্য বস্তু অন্তর্ভুক্ত করতে পারে। উদাহরণস্বরূপ, একটি মুভি অবজেক্টের বৈশিষ্ট্য থাকতে পারে যেমন মুভির শিরোনাম এবং আদিম মান হিসাবে মুক্তির তারিখ। মুভি অবজেক্টে অন্যান্য অবজেক্টও থাকতে পারে, যেমন কাস্ট মেম্বার, যাদের নিজস্ব বৈশিষ্ট্য আছে, যেমন তাদের নাম বা ভূমিকা।
- বৈশিষ্ট্যগুলির জন্য বৈধ মানগুলির উদাহরণ সনাক্ত করুন৷ মান হল একটি সম্পত্তির জন্য সূচীকৃত প্রকৃত ডেটা। উদাহরণস্বরূপ, আপনার ডাটাবেসে একটি চলচ্চিত্রের শিরোনাম হতে পারে "হারানো সিন্দুকের রেইডার।"
- আপনার ব্যবহারকারীদের দ্বারা পছন্দসই বাছাই এবং র্যাঙ্কিং বিকল্পগুলি নির্ধারণ করুন। উদাহরণ স্বরূপ, মুভিগুলিকে জিজ্ঞাসা করার সময়, ব্যবহারকারীরা দর্শকদের রেটিং অনুসারে কালানুক্রমিকভাবে বাছাই করতে চাইতে পারেন এবং শিরোনাম অনুসারে বর্ণানুক্রমিকভাবে সাজানোর প্রয়োজন নেই৷
- (ঐচ্ছিক) বিবেচনা করুন যে আপনার বৈশিষ্ট্যগুলির মধ্যে একটি আরও নির্দিষ্ট প্রেক্ষাপটকে উপস্থাপন করে যেখানে অনুসন্ধান চালানো হতে পারে, যেমন ব্যবহারকারীদের চাকরির ভূমিকা বা বিভাগ, যাতে প্রেক্ষাপটের উপর ভিত্তি করে স্বয়ংসম্পূর্ণ পরামর্শ প্রদান করা যেতে পারে। উদাহরণস্বরূপ, মুভির একটি ডাটাবেস অনুসন্ধান করা লোকেদের জন্য, ব্যবহারকারীরা শুধুমাত্র একটি নির্দিষ্ট ঘরানার চলচ্চিত্রে আগ্রহী হতে পারে। ব্যবহারকারীরা সংজ্ঞায়িত করবে যে তারা তাদের অনুসন্ধানগুলিকে কী ধরণের প্রত্যাবর্তন করতে চায়, সম্ভবত তাদের ব্যবহারকারী প্রোফাইলের অংশ হিসাবে। তারপরে, যখন একজন ব্যবহারকারী চলচ্চিত্রের একটি ক্যোয়ারী টাইপ করতে শুরু করেন, শুধুমাত্র তাদের পছন্দের ঘরানার চলচ্চিত্র যেমন "অ্যাকশন মুভি" স্বয়ংসম্পূর্ণ পরামর্শের অংশ হিসাবে প্রস্তাবিত হয়৷
- এই বস্তু, বৈশিষ্ট্য এবং উদাহরণ মানগুলির একটি তালিকা তৈরি করুন যা অনুসন্ধানে ব্যবহার করা যেতে পারে। (এই তালিকাটি কীভাবে ব্যবহার করা হয় তার বিশদ বিবরণের জন্য, অপারেটর বিকল্পগুলি নির্ধারণ করুন বিভাগটি দেখুন।)
আপনার ডেটা উৎস শুরু করুন
একটি ডেটা উত্স একটি সংগ্রহস্থল থেকে ডেটা উপস্থাপন করে যা Google ক্লাউডে সূচীকৃত এবং সংরক্ষণ করা হয়েছে৷ একটি ডেটা উত্স শুরু করার নির্দেশাবলীর জন্য, তৃতীয় পক্ষের ডেটা উত্সগুলি পরিচালনা করুন দেখুন৷
একটি ব্যবহারকারীর অনুসন্ধান ফলাফল ডেটা উৎস থেকে ফেরত দেওয়া হয়. যখন একজন ব্যবহারকারী একটি অনুসন্ধান ফলাফলে ক্লিক করেন, তখন ক্লাউড অনুসন্ধান ব্যবহারকারীকে ইন্ডেক্সিং অনুরোধে সরবরাহ করা URL ব্যবহার করে প্রকৃত আইটেমের দিকে নির্দেশ করে।
আপনার বস্তু সংজ্ঞায়িত করুন
একটি স্কিমাতে ডেটার মৌলিক একক হল বস্তু , যাকে " স্কিমা অবজেক্ট "ও বলা হয়, যা ডেটার একটি যৌক্তিক কাঠামো। চলচ্চিত্রের একটি ডাটাবেসে, ডেটার একটি যৌক্তিক কাঠামো হল "মুভি।" মুভিতে জড়িত কাস্ট এবং ক্রুদের প্রতিনিধিত্ব করার জন্য আরেকটি বস্তু হতে পারে "ব্যক্তি"।
একটি স্কিমার প্রতিটি বস্তুর বৈশিষ্ট্য বা গুণাবলীর একটি সিরিজ রয়েছে যা বস্তুটিকে বর্ণনা করে, যেমন একটি চলচ্চিত্রের শিরোনাম এবং সময়কাল বা একজন ব্যক্তির নাম এবং জন্মতারিখ। একটি বস্তুর বৈশিষ্ট্য আদিম মান বা অন্যান্য বস্তু অন্তর্ভুক্ত করতে পারে।
চিত্র 1 সিনেমা এবং ব্যক্তি বস্তু এবং সংশ্লিষ্ট বৈশিষ্ট্য দেখায়.
একটি ক্লাউড অনুসন্ধান স্কিমা মূলত objectDefinitions
ট্যাগের মধ্যে সংজ্ঞায়িত অবজেক্ট ডেফিনিশন স্টেটমেন্টের একটি তালিকা। নিচের স্কিমা স্নিপেটটি সিনেমা এবং ব্যক্তি স্কিমা অবজেক্টের জন্য objectDefinitions
স্টেটমেন্ট দেখায়।
{
"objectDefinitions": [
{
"name": "movie",
...
},
{
"name": "person",
...
}
]
}
যখন আপনি একটি স্কিমা অবজেক্ট সংজ্ঞায়িত করেন, তখন আপনি বস্তুটির জন্য একটি name
প্রদান করেন যা স্কিমার অন্যান্য সমস্ত অবজেক্টের মধ্যে অনন্য হতে হবে। সাধারণত আপনি একটি name
মান ব্যবহার করবেন যা অবজেক্টকে বর্ণনা করে, যেমন মুভি অবজেক্টের জন্য movie
। স্কিমা পরিষেবা সূচীযোগ্য বস্তুর জন্য একটি মূল শনাক্তকারী হিসাবে name
ক্ষেত্র ব্যবহার করে। name
ক্ষেত্র সম্পর্কে আরও তথ্যের জন্য, অবজেক্টের সংজ্ঞা পড়ুন।
বস্তুর বৈশিষ্ট্য সংজ্ঞায়িত করুন
অবজেক্ট ডেফিনিশনের রেফারেন্সে যেমন উল্লেখ করা হয়েছে, অবজেক্টের নামটি options
একটি সেট এবং propertyDefinitions
একটি তালিকা দ্বারা অনুসরণ করা হয়। options
আরও freshnessOptions
এবং displayOptions
নিয়ে গঠিত হতে পারে। কোনো আইটেমের সতেজতার উপর ভিত্তি করে সার্চ র্যাঙ্কিং সামঞ্জস্য করতে freshnessOptions
ব্যবহার করা হয়। কোনো বস্তুর জন্য অনুসন্ধানের ফলাফলে নির্দিষ্ট লেবেল এবং বৈশিষ্ট্যগুলি প্রদর্শিত হবে কিনা তা নির্ধারণ করতে 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
অবশ্যই থাকা বস্তুর মধ্যে অনন্য হতে হবে, তবে একই নাম অন্যান্য অবজেক্ট এবং সাব-অবজেক্টে ব্যবহার করা যেতে পারে। চিত্র 1-এ, সিনেমার শিরোনাম এবং মুক্তির তারিখ দুইবার সংজ্ঞায়িত করা হয়েছে: একবার movie
অবজেক্টে এবং আবার filmography
সাব-অবজেক্টে person
অবজেক্ট। এই স্কিমা movieTitle
ক্ষেত্রটি পুনরায় ব্যবহার করে যাতে স্কিমা দুটি ধরণের অনুসন্ধান আচরণ সমর্থন করতে পারে:
- ব্যবহারকারীরা যখন একটি চলচ্চিত্রের শিরোনাম অনুসন্ধান করে তখন চলচ্চিত্রের ফলাফল দেখান।
- ব্যবহারকারীরা যখন একজন অভিনেতা অভিনয় করেছেন এমন একটি চলচ্চিত্রের শিরোনাম অনুসন্ধান করে তখন লোকেদের ফলাফল দেখান৷
একইভাবে, স্কিমা releaseDate
ক্ষেত্রটিকে পুনরায় ব্যবহার করে কারণ এটির দুটি movieTitle
ক্ষেত্রের জন্য একই অর্থ রয়েছে।
আপনার নিজস্ব স্কিমা বিকাশ করার সময়, আপনার সংগ্রহস্থলে কীভাবে সম্পর্কিত ক্ষেত্র থাকতে পারে তা বিবেচনা করুন যাতে আপনি আপনার স্কিমাতে একাধিকবার ঘোষণা করতে চান এমন ডেটা রয়েছে।
টাইপ-অজ্ঞেয়বাদী বিকল্প যোগ করুন
প্রপার্টি ডেফিনিশন ডেটা প্রকার নির্বিশেষে সমস্ত বৈশিষ্ট্যের জন্য সাধারণ অনুসন্ধান কার্যকারিতা বিকল্পগুলিকে তালিকাভুক্ত করে।
-
isReturnable
- নির্দেশ করে যে সম্পত্তিটি এমন ডেটা সনাক্ত করে যা অনুসন্ধানের ফলাফলে Query API-এর মাধ্যমে ফেরত দেওয়া উচিত। উদাহরণ মুভি বৈশিষ্ট্য সব ফেরতযোগ্য. অ-প্রত্যাবর্তনযোগ্য বৈশিষ্ট্যগুলি ব্যবহারকারীকে ফেরত না দিয়ে অনুসন্ধান বা র্যাঙ্কিং ফলাফলের জন্য ব্যবহার করা যেতে পারে। -
isRepeatable
- বৈশিষ্ট্যের জন্য একাধিক মান অনুমোদিত কিনা তা নির্দেশ করে। উদাহরণস্বরূপ, একটি চলচ্চিত্রের শুধুমাত্র একটি মুক্তির তারিখ থাকে তবে একাধিক অভিনেতা থাকতে পারে। -
isSortable
- নির্দেশ করে যে সম্পত্তি সাজানোর জন্য ব্যবহার করা যেতে পারে। এটি পুনরাবৃত্তিযোগ্য বৈশিষ্ট্যগুলির জন্য সত্য হতে পারে না। উদাহরণস্বরূপ, সিনেমার ফলাফল মুক্তির তারিখ বা দর্শকদের রেটিং অনুসারে সাজানো হতে পারে। -
isFacetable
- ইঙ্গিত করে যে সম্পত্তিটি ফেসেট তৈরির জন্য ব্যবহার করা যেতে পারে। অনুসন্ধানের ফলাফলগুলিকে পরিমার্জিত করার জন্য একটি দিক ব্যবহার করা হয় যেখানে ব্যবহারকারী প্রাথমিক ফলাফলগুলি দেখে এবং তারপর সেই ফলাফলগুলিকে আরও পরিমার্জিত করার জন্য মানদণ্ড বা দিকগুলি যোগ করে৷ এই বিকল্পটি এমন বৈশিষ্ট্যগুলির জন্য সত্য হতে পারে না যার ধরন অবজেক্ট এবংisReturnable
এই বিকল্পটি সেট করতে সত্য হতে হবে। অবশেষে, এই বিকল্পটি শুধুমাত্র enum, বুলিয়ান এবং পাঠ্য বৈশিষ্ট্যগুলির জন্য সমর্থিত। উদাহরণ স্বরূপ, আমাদের নমুনা স্কিমাতে, আমরাgenre
,actorName
,userRating
, এবংmpaaRating
ফেসটেবল তৈরি করতে পারি যাতে সেগুলিকে অনুসন্ধান ফলাফলের ইন্টারেক্টিভ পরিমার্জন করার জন্য ব্যবহার করা যায়৷ -
isWildcardSearchable
নির্দেশ করে যে ব্যবহারকারীরা এই সম্পত্তির জন্য ওয়াইল্ডকার্ড অনুসন্ধান করতে পারেন। এই বিকল্পটি শুধুমাত্র টেক্সট বৈশিষ্ট্যে উপলব্ধ। ওয়াইল্ডকার্ড সার্চ কিভাবে টেক্সট ফিল্ডে কাজ করে তা নির্ভর করে exactMatchWithOperator ফিল্ডে সেট করা মানের উপর। যদিexactMatchWithOperator
true
সেট করা হয়, তাহলে পাঠ্যের মানটিকে একটি পারমাণবিক মান হিসাবে টোকেনাইজ করা হয় এবং এর বিপরীতে একটি ওয়াইল্ডকার্ড অনুসন্ধান করা হয়। উদাহরণস্বরূপ, যদি পাঠ্যের মানscience-fiction
হয়, তাহলে একটি ওয়াইল্ডকার্ড ক্যোয়ারীscience-*
এর সাথে মেলে। যদিexactMatchWithOperator
false
সেট করা হয়, তাহলে পাঠ্যের মান টোকেনাইজ করা হয় এবং প্রতিটি টোকেনের বিপরীতে একটি ওয়াইল্ডকার্ড অনুসন্ধান করা হয়। উদাহরণস্বরূপ, যদি পাঠ্যের মান "বিজ্ঞান-কল্পকাহিনী" হয়, তাহলে ওয়াইল্ডকার্ড ক্যোয়ারী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
একটি তারিখ অবজেক্ট। উদাহরণস্বরূপ, যদি জানুয়ারির রিলিজের সাথে বছরের ডিসেম্বর রিলিজের তুলনা করার প্রত্যাশিত ব্যবহারের ঘটনা থাকে, তাহলে একটি স্ট্রিং বিন্যাস কার্যকর হতে পারে।
টাইপ-নির্দিষ্ট বিকল্পগুলি কনফিগার করুন
প্রপার্টি ডেফিনিশন রেফারেন্স বিভাগ প্রতিটি ধরনের বিকল্পের সাথে লিঙ্ক করে। enumPropertyOptions
এ possibleValues
তালিকা ছাড়া বেশিরভাগ টাইপ-নির্দিষ্ট বিকল্পগুলি ঐচ্ছিক। উপরন্তু, orderedRanking
বিকল্পটি আপনাকে একে অপরের সাথে সম্পর্কিত মানগুলিকে র্যাঙ্ক করতে দেয়। নিম্নলিখিত স্নিপেটটি textPropertyOptions
সহ movieTitle
প্রপার্টি দেখায় এবং ডেটা টাইপ সেট করে এবং 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
একটি সেট রয়েছে এই বিকল্পগুলি বর্ণনা করে যে কীভাবে সম্পত্তিটি অনুসন্ধান অপারেটর হিসাবে ব্যবহার করা হয়। নিচের স্নিপেটটি textPropertyOptions
সহ movieTitle
প্রপার্টি দেখায় এবং ডেটা টাইপ সেট করে এবং 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
ছিল। যতক্ষণ না এই বৈশিষ্ট্য দুটিই পাঠ্য ( textPropertyOptions
), plot
অনুসন্ধান অপারেটর ব্যবহার করে একটি একক ক্যোয়ারী উভয়টি পুনরুদ্ধার করে।
operatorName
ছাড়াও, যে বৈশিষ্ট্যগুলিকে সাজানো যায় সেগুলির operatorOptions
এ lessThanOperatorName
এবং greaterThanOperatorName
ক্ষেত্র থাকতে পারে। জমা দেওয়া মানের সাথে তুলনা করার উপর ভিত্তি করে প্রশ্ন তৈরি করতে ব্যবহারকারীরা এই বিকল্পগুলি ব্যবহার করতে পারেন।
অবশেষে, operatorOptions
এ textOperatorOptions
এর একটি exactMatchWithOperator
ক্ষেত্র রয়েছে। যদি আপনি exactMatchWithOperator
true
তে সেট করেন, তাহলে ক্যোয়ারী স্ট্রিংটি অবশ্যই সমগ্র সম্পত্তির মানটির সাথে মিলবে, শুধুমাত্র পাঠ্যের মধ্যে পাওয়া যাবে না। অপারেটর অনুসন্ধান এবং ফেসেট মিলগুলিতে পাঠ্য মানটিকে একটি পারমাণবিক মান হিসাবে বিবেচনা করা হয়।
উদাহরণস্বরূপ, জেনার বৈশিষ্ট্য সহ বই বা মুভি অবজেক্টের সূচী বিবেচনা করুন। জেনারে "সায়েন্স-ফিকশন", "সায়েন্স" এবং "ফিকশন" অন্তর্ভুক্ত থাকতে পারে। exactMatchWithOperator
কে false
বা বাদ দিয়ে সেট করে, একটি ধারা অনুসন্ধান করা বা "বিজ্ঞান" বা "কল্পকাহিনী" দিক নির্বাচন করাও "বিজ্ঞান-কল্পকাহিনী" এর জন্য ফলাফল প্রদান করবে কারণ পাঠ্যটি টোকেনাইজড এবং "বিজ্ঞান" এবং "কল্পকাহিনী" টোকেন বিদ্যমান। "সায়েন্স-ফিকশন"-এ। যখন exactMatchWithOperator
true
হয়, তখন পাঠ্যটিকে একটি একক টোকেন হিসাবে গণ্য করা হয়, তাই "বিজ্ঞান" বা "কল্পকাহিনী" কোনটিই "সায়েন্স-ফিকশন" এর সাথে মেলে না।
(ঐচ্ছিক) displayOptions
বিভাগ যোগ করুন
যেকোনো propertyDefinition
বিভাগের শেষে একটি ঐচ্ছিক displayOptions
বিভাগ রয়েছে। এই বিভাগে একটি displayLabel
স্ট্রিং রয়েছে। displayLabel
প্রপার্টির জন্য একটি প্রস্তাবিত, ব্যবহারকারী-বান্ধব টেক্সট লেবেল। ObjectDisplayOptions ব্যবহার করে প্রদর্শনের জন্য সম্পত্তি কনফিগার করা হলে, এই লেবেলটি সম্পত্তির সামনে প্রদর্শিত হয়। যদি প্রপার্টি প্রদর্শনের জন্য কনফিগার করা হয় এবং displayLabel
সংজ্ঞায়িত না করা হয়, শুধুমাত্র সম্পত্তি মান প্রদর্শিত হয়।
নিচের স্নিপেটটি 'টাইটেল'-এ সেট করা 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 তৈরি করুন যা শুধুমাত্র একজন পরীক্ষাকারী ব্যবহারকারীকে অনুমোদন করে যাতে অন্য ব্যবহারকারীরা অনুসন্ধান ফলাফলে এই ডেটা দেখতে না পায়৷
অনুসন্ধান ক্যোয়ারী যাচাই করার জন্য একটি অনুসন্ধান ইন্টারফেস তৈরি করতে, অনুসন্ধান ইন্টারফেস পড়ুন
এই বিভাগে আপনি একটি মুভি স্কিমা পরীক্ষা করতে ব্যবহার করতে পারেন এমন বিভিন্ন উদাহরণের প্রশ্ন রয়েছে।
একটি জেনেরিক কোয়েরি দিয়ে পরীক্ষা করুন
একটি জেনেরিক ক্যোয়ারী একটি নির্দিষ্ট স্ট্রিং ধারণকারী ডেটা উৎসের সমস্ত আইটেম প্রদান করে। একটি অনুসন্ধান ইন্টারফেস ব্যবহার করে, আপনি "টাইটানিক" শব্দটি টাইপ করে এবং রিটার্ন টিপে একটি মুভি ডেটা উত্সের বিরুদ্ধে জেনেরিক কোয়েরি চালাতে পারেন। "টাইটানিক" শব্দ সহ সমস্ত চলচ্চিত্র অনুসন্ধান ফলাফলে ফেরত দেওয়া উচিত।
একজন অপারেটরের সাথে পরীক্ষা করুন
ক্যোয়ারীতে একটি অপারেটর যোগ করা সেই অপারেটর মানের সাথে মেলে এমন আইটেমগুলিতে ফলাফল সীমাবদ্ধ করে। উদাহরণস্বরূপ, আপনি একজন নির্দিষ্ট অভিনেতা অভিনীত সমস্ত সিনেমা খুঁজে পেতে actor
অপারেটর ব্যবহার করতে চাইতে পারেন। একটি অনুসন্ধান ইন্টারফেস ব্যবহার করে, আপনি এই অপারেটর কোয়েরিটি সম্পাদন করতে পারেন কেবলমাত্র একটি অপারেটর=মান জোড়া টাইপ করে, যেমন "অভিনেতা:জেন" , এবং রিটার্ন টিপে। একজন অভিনেতা হিসাবে Zane সহ সমস্ত চলচ্চিত্র অনুসন্ধান ফলাফলে ফেরত দেওয়া উচিত।
আপনার স্কিমা টিউন
আপনার স্কিমা এবং আপনার ডেটা ব্যবহার করার পরে, আপনার ব্যবহারকারীদের জন্য কী কাজ করছে এবং কী কাজ করছে না তা পর্যবেক্ষণ করা চালিয়ে যান। নিম্নলিখিত পরিস্থিতিতে আপনার স্কিমা সামঞ্জস্য করার কথা বিবেচনা করা উচিত:
- পূর্বে সূচিবদ্ধ করা হয়নি এমন একটি ক্ষেত্রকে ইন্ডেক্স করা। উদাহরণস্বরূপ, আপনার ব্যবহারকারীরা বারবার পরিচালকের নামের উপর ভিত্তি করে চলচ্চিত্রগুলি অনুসন্ধান করতে পারে, তাই আপনি পরিচালকের নামকে অপারেটর হিসাবে সমর্থন করার জন্য আপনার স্কিমা সামঞ্জস্য করতে পারেন।
- ব্যবহারকারীর প্রতিক্রিয়ার উপর ভিত্তি করে অনুসন্ধান অপারেটরের নাম পরিবর্তন করা হচ্ছে। অপারেটর নাম ব্যবহারকারী-বান্ধব হতে বোঝানো হয়. যদি আপনার ব্যবহারকারীরা ক্রমাগত ভুল অপারেটরের নাম "মনে রাখে" তবে আপনি এটি পরিবর্তন করার কথা বিবেচনা করতে পারেন।
একটি স্কিমা পরিবর্তনের পরে পুনরায় সূচীকরণ
আপনার স্কিমাতে নিম্নলিখিত মানগুলির মধ্যে যেকোনো একটি পরিবর্তন করার জন্য আপনাকে আপনার ডেটা পুনরায় সূচী করার প্রয়োজন নেই । আপনি সহজভাবে একটি নতুন UpdateSchema অনুরোধ জমা দিতে পারেন এবং আপনার সূচক কাজ করতে থাকবে:
- অপারেটরের নাম।
- পূর্ণসংখ্যার সর্বনিম্ন এবং সর্বোচ্চ মান।
- পূর্ণসংখ্যা এবং enum অর্ডারকৃত র্যাঙ্কিং।
- সতেজতা বিকল্প।
- প্রদর্শনের বিকল্পগুলি।
নিম্নলিখিত পরিবর্তনের জন্য, পূর্বে সূচীকৃত ডেটা পূর্বে নিবন্ধিত স্কিমা অনুযায়ী কাজ করতে থাকবে। যাইহোক, যদি এই পরিবর্তনগুলি থাকে তবে আপডেট করা স্কিমার উপর ভিত্তি করে পরিবর্তনগুলি দেখতে আপনাকে অবশ্যই বিদ্যমান এন্ট্রিগুলি পুনরায় সূচী করতে হবে:
- একটি নতুন সম্পত্তি বা বস্তু যোগ বা অপসারণ
-
isReturnable
,isFacetable
বাisSortable
false
থেকেtrue
পরিবর্তন করা হচ্ছে।
আপনার যদি একটি পরিষ্কার ব্যবহারের কেস এবং প্রয়োজন থাকে তবেই আপনাকে true
হিসাবে isFacetable
বা isSortable
সেট করা উচিত।
অবশেষে, যখন আপনি একটি প্রপার্টি isSuggestable
চিহ্নিত করে আপনার স্কিমা আপডেট করেন, তখন আপনাকে অবশ্যই আপনার ডেটা পুনঃসূচীকরণ করতে হবে যা সেই সম্পত্তির জন্য স্বয়ংসম্পূর্ণ ব্যবহারে বিলম্ব ঘটায়।
অনুমোদিত সম্পত্তি পরিবর্তন
কিছু স্কিমা পরিবর্তন অনুমোদিত নয়, এমনকি যদি আপনি আপনার ডেটা পুনঃসূচীকরণ করেন, কারণ সেগুলি সূচী ভেঙ্গে ফেলবে বা খারাপ বা অসঙ্গত অনুসন্ধান ফলাফল তৈরি করবে৷ এর মধ্যে পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে:
- সম্পত্তি ডেটা টাইপ।
- সম্পত্তির নাম।
-
exactMatchWithOperator
সেটিং। -
retrievalImportance
সেটিং.
যাইহোক, এই সীমাবদ্ধতা কাছাকাছি একটি উপায় আছে.
একটি জটিল স্কিমা পরিবর্তন করুন
এমন পরিবর্তনগুলি এড়াতে যা খারাপ অনুসন্ধান ফলাফল বা ভাঙা অনুসন্ধান সূচক তৈরি করবে, ক্লাউড অনুসন্ধান রিপোজিটরি সূচিবদ্ধ হওয়ার পরে UpdateSchema অনুরোধে নির্দিষ্ট ধরণের পরিবর্তনগুলিকে বাধা দেয়৷ উদাহরণস্বরূপ, একটি প্রপার্টি সেট করার পরে ডেটা টাইপ বা নাম পরিবর্তন করা যাবে না। এই পরিবর্তনগুলি একটি সাধারণ UpdateSchema অনুরোধের মাধ্যমে অর্জন করা যাবে না, এমনকি যদি আপনি আপনার ডেটা পুনরায় সূচী করেন।
এমন পরিস্থিতিতে যেখানে আপনাকে আপনার স্কিমাতে অন্যথায় অননুমোদিত পরিবর্তন করতে হবে, আপনি প্রায়শই একই প্রভাব অর্জন করে এমন একাধিক অনুমোদিত পরিবর্তন করতে পারেন। সাধারণভাবে, এর মধ্যে প্রথমে একটি পুরানো অবজেক্ট ডেফিনেশন থেকে নতুন একটিতে ইন্ডেক্স করা প্রপার্টি স্থানান্তর করা এবং তারপর শুধুমাত্র নতুন প্রপার্টি ব্যবহার করে এমন একটি ইন্ডেক্সিং অনুরোধ পাঠানো জড়িত।
নিম্নলিখিত ধাপগুলি দেখায় কিভাবে একটি সম্পত্তির ডেটা প্রকার বা নাম পরিবর্তন করতে হয়:
- আপনার স্কিমার অবজেক্ট সংজ্ঞাতে একটি নতুন সম্পত্তি যোগ করুন। আপনি যে সম্পত্তি পরিবর্তন করতে চান তার থেকে একটি ভিন্ন নাম ব্যবহার করুন।
- নতুন সংজ্ঞা সহ UpdateSchema অনুরোধ ইস্যু করুন। অনুরোধে নতুন এবং পুরাতন উভয় সম্পত্তি সহ সম্পূর্ণ স্কিমা পাঠাতে ভুলবেন না।
ডেটা রিপোজিটরি থেকে সূচকটি ব্যাকফিল করুন। ইনডেক্স ব্যাকফিল করতে, নতুন প্রপার্টি ব্যবহার করে সব ইন্ডেক্সিং রিকোয়েস্ট পাঠান, কিন্তু পুরানো প্রপার্টি নয় , কারণ এর ফলে ডবল কাউন্টিং কোয়েরি মিল হবে।
- ইনডেক্সিং ব্যাকফিলের সময়, অসংলগ্ন আচরণ এড়াতে নতুন সম্পত্তি এবং পুরানো সম্পত্তিতে ডিফল্ট চেক করুন।
- ব্যাকফিল সম্পূর্ণ হওয়ার পরে, যাচাই করার জন্য পরীক্ষামূলক প্রশ্নগুলি চালান।
পুরানো সম্পত্তি মুছুন। পুরানো সম্পত্তির নাম ছাড়াই আরেকটি UpdateSchema অনুরোধ ইস্যু করুন এবং ভবিষ্যতে ইন্ডেক্সিং অনুরোধে পুরানো সম্পত্তির নাম ব্যবহার বন্ধ করুন।
পুরানো সম্পত্তির যেকোনো ব্যবহার নতুন সম্পত্তিতে স্থানান্তর করুন। উদাহরণ স্বরূপ, আপনি যদি নির্মাতা থেকে লেখকে সম্পত্তির নাম পরিবর্তন করেন, তাহলে আপনাকে অবশ্যই লেখক ব্যবহার করতে আপনার ক্যোয়ারী কোড আপডেট করতে হবে যেখানে এটি পূর্বে নির্মাতাকে উল্লেখ করেছে।
ক্লাউড সার্চ অপ্রত্যাশিত সূচী ফলাফলের কারণ হতে পারে এমন যেকোনো পুনঃব্যবহারের বিরুদ্ধে রক্ষা করার জন্য 30 দিনের জন্য কোনো মুছে ফেলা সম্পত্তি বা বস্তুর একটি রেকর্ড রাখে। সেই 30 দিনের মধ্যে, আপনার মুছে ফেলা বস্তু বা সম্পত্তির সমস্ত ব্যবহার থেকে দূরে সরে যেতে হবে, ভবিষ্যতে সূচক অনুরোধগুলি থেকে বাদ দেওয়া সহ। এটি নিশ্চিত করে যে আপনি যদি পরে সেই সম্পত্তি বা বস্তুকে পুনঃপ্রতিষ্ঠা করার সিদ্ধান্ত নেন, তাহলে আপনি এমনভাবে তা করতে পারেন যা আপনার সূচকের সঠিকতা বজায় রাখে।
আকারের সীমাবদ্ধতা জানুন
ক্লাউড অনুসন্ধান কাঠামোগত ডেটা অবজেক্ট এবং স্কিমার আকারের উপর সীমা আরোপ করে। এই সীমাগুলি হল:
- সর্বোচ্চ সংখ্যক শীর্ষ-স্তরের বস্তু হল 10টি বস্তু।
- একটি স্ট্রাকচার্ড ডেটা হায়ারার্কির সর্বোচ্চ গভীরতা হল 10 লেভেল।
- একটি বস্তুর মোট ক্ষেত্র সংখ্যা 1000-এর মধ্যে সীমাবদ্ধ, যার মধ্যে রয়েছে আদিম ক্ষেত্রগুলির সংখ্যা এবং প্রতিটি নেস্টেড অবজেক্টের ক্ষেত্রের সংখ্যার যোগফল।
পরবর্তী পদক্ষেপ
এখানে কয়েকটি পরবর্তী পদক্ষেপ রয়েছে যা আপনি নিতে পারেন:
আপনার স্কিমা পরীক্ষা করার জন্য একটি অনুসন্ধান ইন্টারফেস তৈরি করুন।
অনুসন্ধানের গুণমান উন্নত করতে আপনার স্কিমা টিউন করুন৷
আপনার কোম্পানিতে সাধারণত ব্যবহৃত পদগুলির জন্য প্রতিশব্দ সংজ্ঞায়িত করতে
_dictionaryEntry
স্কিমা কীভাবে ব্যবহার করবেন তা শিখুন।_dictionaryEntry
স্কিমা ব্যবহার করতে, প্রতিশব্দ সংজ্ঞায়িত করুন দেখুন।একটি সংযোগকারী তৈরি করুন।