কোয়েরি এপিআই একটি সার্চ ইন্টারফেস তৈরি করতে অথবা কোনো অ্যাপ্লিকেশনে ফলাফল এম্বেড করার জন্য সার্চ এবং সাজেস্ট মেথড প্রদান করে।
ন্যূনতম প্রয়োজনীয়তা সম্পন্ন ওয়েব অ্যাপ্লিকেশনগুলির জন্য, সার্চ উইজেট ব্যবহার করার কথা বিবেচনা করুন। সার্চ উইজেট ব্যবহার করে একটি সার্চ ইন্টারফেস তৈরি করুন দেখুন।
একটি অনুসন্ধান ইন্টারফেস তৈরি করুন
একটি ন্যূনতম অনুসন্ধান ইন্টারফেস তৈরি করতে কয়েকটি ধাপ অনুসরণ করতে হয়:
- একটি সার্চ অ্যাপ্লিকেশন কনফিগার করুন।
- অ্যাপ্লিকেশনটির জন্য OAuth ক্রেডেনশিয়াল তৈরি করুন।
- ইনডেক্সটি কোয়েরি করুন।
- কোয়েরির ফলাফল প্রদর্শন করুন।
আপনি পেজিং, সর্টিং, ফিল্টারিং, ফ্যাসেট এবং অটোকমপ্লিটের মতো ফিচার দিয়ে ইন্টারফেসটিকে আরও উন্নত করতে পারেন।
একটি অনুসন্ধান অ্যাপ্লিকেশন কনফিগার করুন
প্রতিটি সার্চ ইন্টারফেসের জন্য আপনাকে অবশ্যই অন্তত একটি সার্চ অ্যাপ্লিকেশন তৈরি করতে হবে। একটি সার্চ অ্যাপ্লিকেশন ডেটা সোর্স, সর্ট অর্ডার, ফিল্টার এবং ফ্যাসেট-এর মতো ডিফল্ট প্যারামিটার সরবরাহ করে। আপনি কোয়েরি এপিআই (Query API) ব্যবহার করে এই প্যারামিটারগুলো ওভাররাইড করতে পারেন।
সার্চ অ্যাপ্লিকেশনে কনফিগার করা ডেটা সোর্সগুলোর বাইরে আপনি কোনো কোয়েরিতে ব্যবহৃত ডেটা সোর্সের সংখ্যা বাড়াতে পারবেন না। আপনি dataSourceRestrictions ব্যবহার করে এই সোর্সগুলোর একটি উপসেটের মধ্যে কোয়েরি সীমাবদ্ধ করতে পারেন।
আরও তথ্যের জন্য, অনুসন্ধান অভিজ্ঞতা কাস্টমাইজ করুন দেখুন।
অ্যাপ্লিকেশনটির জন্য OAuth ক্রেডেনশিয়াল তৈরি করুন
ক্লাউড সার্চ এপিআই-তে অ্যাক্সেস কনফিগার করার ধাপগুলোর পাশাপাশি, আপনাকে আপনার ওয়েব অ্যাপ্লিকেশনের জন্য OAuth ক্রেডেনশিয়াল তৈরি করতে হবে।
ব্যবহারকারীর পক্ষ থেকে অনুমোদনের অনুরোধ করতে ক্রেডেনশিয়ালগুলো ব্যবহার করুন। https://www.googleapis.com/auth/cloud_search.query স্কোপটি ব্যবহার করুন।
OAuth বিকল্পগুলি সম্পর্কে আরও জানতে, Google Identity Platform দেখুন।
সূচকটি অনুসন্ধান করুন
ইনডেক্স অনুসন্ধান করতে search মেথডটি ব্যবহার করুন।
প্রতিটি অনুরোধে অবশ্যই একটি টেক্সট query এবং একটি searchApplicationId অন্তর্ভুক্ত থাকতে হবে।
এই উদাহরণটি একটি মুভি ডেটা সোর্স থেকে কোয়েরি করে:
{
"query": "titanic",
"requestOptions": {
"searchApplicationId": "searchapplications/<search_app_id>"
}
}
কোয়েরির ফলাফল প্রদর্শন করুন
সার্চ ইন্টারফেসে আইটেমের title এবং মূল আইটেমের একটি লিঙ্ক প্রদর্শন করা উচিত। ডিসপ্লে উন্নত করার জন্য আপনি স্নিপেট এবং মেটাডেটাও ব্যবহার করতে পারেন।
অতিরিক্ত ফলাফল পরিচালনা করুন
কোনো কোয়েরির জন্য পর্যাপ্ত মিল না থাকলে ক্লাউড সার্চ সম্পূরক ফলাফল প্রদর্শন করে। queryInterpretation ফিল্ডটি এই বিষয়টি নির্দেশ করে। যদি শুধু সম্পূরক ফলাফল প্রদর্শিত হয়, তাহলে InterpretationType হয় REPLACE । আর যদি সেগুলো মিশ্রিত আকারে আসে, তাহলে BLEND হয়।
অতিরিক্ত ফলাফল দেখানোর সময় ব্যবহারকারীকে জানানোর কথা বিবেচনা করুন। কোনো কিছু REPLACE করার ক্ষেত্রে আপনি বলতে পারেন: "আপনার অনুসন্ধানের সাথে কোনো ফলাফল মেলেনি। একই ধরনের অনুসন্ধানের ফলাফল দেখানো হচ্ছে।"
মানুষের ফলাফল পরিচালনা করুন
ক্লাউড সার্চ, পিপল সার্চ ফিচারটি ব্যবহার করে ব্যক্তি ও কর্মচারী সম্পর্কিত ডকুমেন্টগুলো খুঁজে বের করে। ফলাফলগুলো structuredResults ফিল্ডে থাকে:
{
"results": [...],
"structuredResults": [{
"person": {...}
}]
}
সরাসরি রিপোর্ট মেলানো
ডিরেক্ট রিপোর্টস ম্যাচিং ব্যবহারকারীদের কোনো ব্যক্তির সরাসরি অধীনস্থদের দেখার সুযোগ দেয়। এই প্রতিক্রিয়ায় RELATED_PEOPLE_ANSWER_CARD cardType একটি assistCardProtoHolder অন্তর্ভুক্ত থাকে।
অপ্টিমাইজেশন বন্ধ করুন
পরিপূরক ফলাফলের মতো অপ্টিমাইজেশনগুলো ডিফল্টরূপে সক্রিয় থাকে। আপনি এগুলো নিষ্ক্রিয় করতে পারেন:
- অনুসন্ধান অ্যাপ্লিকেশন স্তর :
force_verbatim_modetrueতে সেট করুন। - কোয়েরি লেভেল :
enableVerbatimModetrueতে সেট করুন।
হাইলাইট স্নিপেট
ক্লাউড সার্চ ইনডেক্স করা টেক্সট বা এইচটিএমএল-এর একটি স্নিপেট ফেরত দেয়। যদি কোয়েরি টার্ম উপস্থিত থাকে, তাহলে matchRanges তাদের অবস্থান শনাক্ত করে। টেক্সট হাইলাইট করতে এই রেঞ্জগুলো ব্যবহার করুন।
function highlightSnippet(snippet) {
let text = snippet.snippet;
let formattedText = text;
if (snippet.matchRanges) {
let parts = [];
let index = 0;
for (let match of snippet.matchRanges) {
let start = match.start || 0; // Default to 0 if omitted
let end = match.end;
if (index < start) { // Include any leading text before/between ranges
parts.push(text.slice(index, start));
}
parts.push('<span class="highlight">');
parts.push(text.slice(start, end));
parts.push('</span>');
index = end;
}
parts.push(text.slice(index)); // Include any trailing text after last range
formattedText = parts.join('');
}
return formattedText;
}
প্রদত্ত কোড স্নিপেট:
{
"snippet": "This is an example snippet...",
"matchRanges": [
{
"start": 11,
"end": 18
}
]
}
ফলস্বরূপ এইচটিএমএল স্ট্রিংটি হলো:
This is an <span class="highlight">example</span> snippet...
মেটাডেটা প্রদর্শন করুন
createTime , updateTime এবং স্ট্রাকচার্ড ডেটার মতো তথ্যের জন্য metadata ফিল্ড ব্যবহার করুন। স্ট্রাকচার্ড ডেটা দেখানোর জন্য displayOptions ব্যবহার করুন।
অতিরিক্ত ফলাফল পুনরুদ্ধার করুন
আরও ফলাফল পেতে, start ফিল্ডটিকে নির্বাচিত অফসেটে সেট করুন। pageSize ব্যবহার করে পৃষ্ঠার আকার সমন্বয় করুন। মোট আইটেম বা আনুমানিক সংখ্যা প্রদর্শন করতে resultCount ব্যবহার করুন।
ফলাফল সাজান
ক্রম নির্দিষ্ট করতে sortOptions ব্যবহার করুন:
-
operatorName: যে প্রপার্টির ভিত্তিতে সর্ট করা হবে। -
sortOrder:ASCENDINGঅথবাDESCENDING।
প্রাসঙ্গিকতা হলো ডিফল্ট এবং দ্বিতীয় বাছাই কী।
ফিল্টার যোগ করুন
সার্চ অ্যাপ্লিকেশন বা অনুরোধে ফিল্টার ব্যবহার করে ফলাফল সীমিত করুন। যদি উভয় ক্ষেত্রেই কোনো উৎসের জন্য ফিল্টার নির্দিষ্ট করা থাকে, তবে উভয়কেই 'ট্রু' হিসেবে মূল্যায়ন করতে হবে।
dataSourceRestrictions.filterOptions[] -এ ফিল্টার প্রয়োগ করুন। প্রধান ফিল্টারের প্রকারভেদ:
- অবজেক্ট ফিল্টার : মিলগুলোকে একটি নির্দিষ্ট ধরনের মধ্যে সীমাবদ্ধ করে।
- মান ফিল্টার : অপারেটর এবং মানের উপর ভিত্তি করে মিল সীমিত করে।
কম্পোজিট ফিল্টার একাধিক ভ্যালু ফিল্টারকে একত্রিত করে।
ফ্যাসেট ব্যবহার করে ফলাফল পরিমার্জন করুন
ফ্যাসেট ব্যবহারকারীদের ইন্টারেক্টিভভাবে কোয়েরি পরিমার্জন করতে সাহায্য করে। আপনি যখন ফ্যাসেটের জন্য অনুরোধ করেন, ক্লাউড সার্চ সেই প্রপার্টিগুলোর জন্য সর্বাধিক ব্যবহৃত মানগুলো গণনা করে।
সাধারণ প্যাটার্ন: ১. ফ্যাসেট প্রোপার্টি উল্লেখ করে কোয়েরি। ২. সার্চ এবং ফ্যাসেট ফলাফল রেন্ডার করা। ৩. ব্যবহারকারী ফ্যাসেট ভ্যালু নির্বাচন করেন। ৪. নির্বাচিত ভ্যালুর উপর ভিত্তি করে ফিল্টার সহ কোয়েরিটির পুনরাবৃত্তি।
পূর্ণসংখ্যা-ভিত্তিক ক্ষেত্রগুলির সাথে ফেসেট ফলাফল
রেঞ্জ অনুযায়ী (যেমন, "১০০-২০০" পৃষ্ঠা) ফলাফল পরিমার্জন করতে একটি ইন্টিজার প্রপার্টিকে ফেসটেবল হিসেবে চিহ্নিত করুন। isFacetable কে true সেট করুন এবং স্কিমাতে ডিফল্ট বাকেটিং অপশনগুলো সংজ্ঞায়িত করুন।
ডকুমেন্টের আকার বা তারিখ অনুসারে ফলাফল চিহ্নিত করুন
সংরক্ষিত অপারেটর ব্যবহার করুন :
-
itemsize: ফাইলের আকার বাইটে পরিমাপ করার জন্য। -
createddatetimestamp: তৈরির তারিখের জন্য। -
lastmodified: পরিবর্তনের তারিখের জন্য।
পরামর্শ যোগ করুন
কোয়েরি হিস্ট্রি, কন্ট্যাক্ট এবং ডকুমেন্টের কন্টেন্টের উপর ভিত্তি করে অটোকমপ্লিটের জন্য সাজেস্ট এপিআই ব্যবহার করুন।