ক্যোয়ারী API দিয়ে একটি অনুসন্ধান ইন্টারফেস তৈরি করুন

কোয়েরি এপিআই একটি অনুসন্ধান ইন্টারফেস তৈরি করার জন্য বা একটি অ্যাপ্লিকেশনে ফলাফল এম্বেড করার জন্য অনুসন্ধান এবং পরামর্শ পদ্ধতি প্রদান করে।

ন্যূনতম প্রয়োজনীয়তা সহ ওয়েব অ্যাপ্লিকেশনগুলির জন্য, অনুসন্ধান উইজেট ব্যবহার করার কথা বিবেচনা করুন। অনুসন্ধান উইজেট দিয়ে একটি অনুসন্ধান ইন্টারফেস তৈরি করুন দেখুন।

একটি অনুসন্ধান ইন্টারফেস তৈরি করুন

একটি ন্যূনতম অনুসন্ধান ইন্টারফেস তৈরি করতে বেশ কয়েকটি ধাপ প্রয়োজন:

  1. একটি অনুসন্ধান অ্যাপ্লিকেশন কনফিগার করুন।
  2. অ্যাপ্লিকেশনটির জন্য OAuth শংসাপত্র তৈরি করুন।
  3. সূচকটি জিজ্ঞাসা করুন।
  4. কোয়েরির ফলাফল প্রদর্শন করুন।

আপনি পেজিং, সর্টিং, ফিল্টারিং, ফ্যাসেট এবং অটোকম্পলিটের মতো বৈশিষ্ট্যগুলির সাহায্যে ইন্টারফেসটি উন্নত করতে পারেন।

একটি অনুসন্ধান অ্যাপ্লিকেশন কনফিগার করুন

প্রতিটি অনুসন্ধান ইন্টারফেসের জন্য আপনাকে কমপক্ষে একটি অনুসন্ধান অ্যাপ্লিকেশন তৈরি করতে হবে। একটি অনুসন্ধান অ্যাপ্লিকেশন ডিফল্ট প্যারামিটার প্রদান করে, যেমন ডেটা সোর্স, সাজানোর ক্রম, ফিল্টার এবং দিক। আপনি Query API ব্যবহার করে এই প্যারামিটারগুলিকে ওভাররাইড করতে পারেন।

আপনি অনুসন্ধান অ্যাপ্লিকেশনে কনফিগার করা ডেটা উৎসের সংখ্যার চেয়ে বেশি কোনও কোয়েরিতে ব্যবহৃত ডেটা উৎসের সংখ্যা বাড়াতে পারবেন না। আপনি dataSourceRestrictions ব্যবহার করে এই উৎসগুলির একটি উপসেটে একটি কোয়েরি সীমাবদ্ধ করতে পারেন।

আরও তথ্যের জন্য, অনুসন্ধান অভিজ্ঞতা কাস্টমাইজ করুন দেখুন।

অ্যাপ্লিকেশনের জন্য OAuth শংসাপত্র তৈরি করুন

ক্লাউড অনুসন্ধান API-তে অ্যাক্সেস কনফিগার করার ধাপগুলি ছাড়াও, আপনার ওয়েব অ্যাপ্লিকেশনের জন্য 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_mode কে true তে সেট করুন।
  • কোয়েরি লেভেল : enableVerbatimMode কে true তে সেট করুন।

স্নিপেট হাইলাইট করুন

ক্লাউড সার্চ ইনডেক্স করা টেক্সট বা HTML এর জন্য একটি স্নিপেট ফেরত দেয়। যদি কোয়েরি শব্দগুলি উপস্থিত থাকে, তাহলে 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
    }
  ]
}

ফলাফলস্বরূপ HTML স্ট্রিংটি হল:

This is an <span class="highlight">example</span> snippet...

মেটাডেটা প্রদর্শন করুন

createTime , updateTime এবং স্ট্রাকচার্ড ডেটার মতো তথ্যের জন্য metadata ফিল্ড ব্যবহার করুন। স্ট্রাকচার্ড ডেটা দেখানোর জন্য displayOptions ব্যবহার করুন।

অতিরিক্ত ফলাফল পুনরুদ্ধার করুন

আরও ফলাফল পেতে, start ক্ষেত্রটি নির্বাচিত অফসেটে সেট করুন। pageSize ব্যবহার করে পৃষ্ঠার আকার সামঞ্জস্য করুন। মোট আইটেম বা আনুমানিক গণনা প্রদর্শন করতে resultCount ব্যবহার করুন।

ফলাফল সাজান

অর্ডার নির্দিষ্ট করতে sortOptions ব্যবহার করুন:

  • operatorName : যে বৈশিষ্ট্য অনুসারে সাজানো হবে।
  • sortOrder : ASCENDING বা DESCENDING

প্রাসঙ্গিকতা হল ডিফল্ট এবং সেকেন্ডারি সর্ট কী।

ফিল্টার যোগ করুন

অনুসন্ধান অ্যাপ্লিকেশন বা অনুরোধে ফিল্টার ব্যবহার করে ফলাফল সীমাবদ্ধ করুন। যদি উভয়ই একটি উৎসের জন্য ফিল্টার নির্দিষ্ট করে, তাহলে উভয়কেই সত্য হিসাবে মূল্যায়ন করতে হবে।

dataSourceRestrictions.filterOptions[] এ ফিল্টার প্রয়োগ করুন। প্রাথমিক ফিল্টারের ধরণ:

  • অবজেক্ট ফিল্টার : একটি নির্দিষ্ট ধরণের মিল সীমাবদ্ধ করুন।
  • মান ফিল্টার : একটি অপারেটর এবং মানের উপর ভিত্তি করে মিল সীমাবদ্ধ করুন।

কম্পোজিট ফিল্টার একাধিক মান ফিল্টার একত্রিত করে।

দিকগুলি ব্যবহার করে ফলাফল পরিমার্জন করুন

Facets ব্যবহারকারীদের ইন্টারেক্টিভভাবে কোয়েরিগুলি পরিমার্জন করতে সাহায্য করে। যখন আপনি Facets অনুরোধ করেন, তখন Cloud Search সেই বৈশিষ্ট্যগুলির জন্য সর্বাধিক ঘন ঘন মান গণনা করে।

সাধারণ প্যাটার্ন: ১. ফ্যাসেট বৈশিষ্ট্য নির্দিষ্ট করে কোয়েরি। ১. অনুসন্ধান এবং ফ্যাসেট ফলাফল রেন্ডার করুন। ১. ব্যবহারকারী ফ্যাসেট মান নির্বাচন করেন। ১. নির্বাচনের উপর ভিত্তি করে একটি ফিল্টার দিয়ে কোয়েরি পুনরাবৃত্তি করুন।

পূর্ণসংখ্যা-ভিত্তিক ক্ষেত্র সহ পার্শ্ব ফলাফল

রেঞ্জ অনুসারে ফলাফল পরিমার্জন করার জন্য একটি পূর্ণসংখ্যার বৈশিষ্ট্যকে ফেসটেবল হিসেবে চিহ্নিত করুন (যেমন, "১০০-২০০" পৃষ্ঠা)। isFacetable true তে সেট করুন এবং স্কিমায় ডিফল্ট বাকেটিং বিকল্পগুলি সংজ্ঞায়িত করুন।

নথির আকার বা তারিখ অনুসারে পার্শ্ব ফলাফল

সংরক্ষিত অপারেটর ব্যবহার করুন:

  • itemsize : বাইটে ফাইলের আকারের জন্য।
  • createddatetimestamp : তৈরির তারিখের জন্য।
  • lastmodified : পরিবর্তনের তারিখের জন্য।

পরামর্শ যোগ করুন

কোয়েরি ইতিহাস, পরিচিতি এবং ডকুমেন্ট কন্টেন্টের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে সম্পন্ন করার জন্য সাজেস্ট API ব্যবহার করুন।