क्वेरी एपीआई की मदद से खोज इंटरफ़ेस बनाना

क्वेरी एपीआई, खोज इंटरफ़ेस बनाने या किसी ऐप्लिकेशन में खोज के नतीजे एम्बेड करने के लिए, खोज और सुझाव देने के तरीके उपलब्ध कराता है.

कम से कम ज़रूरी शर्तें पूरी करने वाले वेब ऐप्लिकेशन के लिए, खोज विजेट का इस्तेमाल करें. ज़्यादा जानकारी के लिए, सर्च विजेट की मदद से खोज इंटरफ़ेस बनाना लेख पढ़ें

सर्च इंटरफ़ेस बनाना

कम से कम खोज इंटरफ़ेस बनाने के लिए, कई चरणों की ज़रूरत होती है:

  1. सर्च ऐप्लिकेशन कॉन्फ़िगर करना
  2. ऐप्लिकेशन के लिए OAuth क्रेडेंशियल जनरेट करना
  3. इंडेक्स से क्वेरी करना
  4. क्वेरी के नतीजे दिखाना

पेजिंग, क्रम से लगाने, फ़िल्टर करने, फ़ेसेट, और अपने-आप सुझाव देने जैसी सुविधाओं की मदद से, खोज इंटरफ़ेस को और बेहतर बनाया जा सकता है.

सर्च ऐप्लिकेशन कॉन्फ़िगर करना

आपको अपने बनाए गए हर सर्च इंटरफ़ेस के साथ जोड़ने के लिए, कम से कम एक सर्च ऐप्लिकेशन बनाना होगा. सर्च ऐप्लिकेशन, किसी क्वेरी के लिए डिफ़ॉल्ट पैरामीटर उपलब्ध कराता है. जैसे, इस्तेमाल किए जाने वाले डेटा सोर्स, क्रम में लगाने का तरीका, फ़िल्टर, और अनुरोध करने के लिए फ़ेसेट. ज़रूरत पड़ने पर, क्वेरी एपीआई का इस्तेमाल करके इन पैरामीटर को बदला जा सकता है.

खोज ऐप्लिकेशन के बारे में ज़्यादा जानने के लिए, Cloud Search में खोज के अनुभव को पसंद के मुताबिक बनाना लेख पढ़ें.

ऐप्लिकेशन के लिए OAuth क्रेडेंशियल जनरेट करना

Google Cloud Search API को ऐक्सेस करने के लिए कॉन्फ़िगर करें में बताए गए चरणों के अलावा, आपको वेब ऐप्लिकेशन के लिए OAuth क्रेडेंशियल भी जनरेट करने होंगे. आपके बनाए गए क्रेडेंशियल का टाइप, एपीआई के इस्तेमाल के संदर्भ पर निर्भर करता है.

उपयोगकर्ता की ओर से अनुमति का अनुरोध करने के लिए, क्रेडेंशियल का इस्तेमाल करें. अनुमति का अनुरोध करते समय, https://www.googleapis.com/auth/cloud_search.query का इस्तेमाल करें.

OAuth के विकल्पों और क्लाइंट लाइब्रेरी के बारे में ज़्यादा जानकारी के लिए, [Google Identity Platform](https://developers.google.com/identity/choose-auth{: .external target="_blank"}) देखें.

इंडेक्स से क्वेरी करना

इंडेक्स में खोजने के लिए, search तरीका इस्तेमाल करें.

हर अनुरोध में दो तरह की जानकारी होनी चाहिए: आइटम से मैच करने के लिए टेक्स्ट query और सर्च ऐप्लिकेशन के इस्तेमाल के लिए आईडी की पहचान करने वाला searchApplicationId.

नीचे दिए गए स्निपेट में, 'टाइटेनिक' फ़िल्म के डेटा सोर्स के लिए क्वेरी दिखाई गई है:

{
  "query": "titanic",
  "requestOptions": {
    "searchApplicationId": "searchapplications/<search_app_id>"
  },
}

क्वेरी के नतीजे दिखाना

कम से कम, खोज इंटरफ़ेस में आइटम title के साथ-साथ, मूल आइटम का लिंक भी दिखना चाहिए. खोज के नतीजों में मौजूद अतिरिक्त जानकारी का इस्तेमाल करके, खोज के नतीजों को और बेहतर तरीके से दिखाया जा सकता है. जैसे, स्निपेट और मेटाडेटा.

सप्लिमेंटल नतीजे हैंडल करना

डिफ़ॉल्ट रूप से, Cloud Search उपयोगकर्ता की क्वेरी के लिए ज़रूरत के मुताबिक नतीजे न मिलने पर, अतिरिक्त नतीजे दिखाता है. जवाब में मौजूद queryInterpretation फ़ील्ड से पता चलता है कि पूरक नतीजे कब दिखाए जाते हैं. अगर सिर्फ़ वैकल्पिक नतीजे दिखाए जाते हैं, तो InterpretationType को REPLACE पर सेट किया जाता है. अगर मुख्य नतीजों के साथ-साथ, ओरिजनल क्वेरी के कुछ नतीजे भी दिखाए जाते हैं, तो InterpretationType को BLEND पर सेट किया जाता है. दोनों ही मामलों में QueryInterpretation.Reason = NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY.

जब कुछ सप्लिमेंटल नतीजे दिखाए जाते हैं, तो सप्लिमेंटल नतीजे दिखाए गए हैं, यह बताने के लिए टेक्स्ट दें. उदाहरण के लिए, REPLACE के मामले में, "आपकी ओरिजनल क्वेरी के लिए की गई खोज का मिलान किसी भी नतीजे से नहीं हुआ" स्ट्रिंग दिखाई जा सकती है. मिलती-जुलती क्वेरी के लिए नतीजे दिखाए जा रहे हैं.”

BLEND के मामले में, "आपकी मूल क्वेरी के लिए की गई खोज से, ज़रूरत के मुताबिक नतीजे नहीं मिले" स्ट्रिंग दिखाई जा सकती है. मिलती-जुलती क्वेरी के नतीजे भी शामिल हैं."

'लोगों के लिए नतीजे' मैनेज करना

Cloud Search, "लोगों से जुड़े नतीजे" दो तरह के दिखाता है: क्वेरी में जिस व्यक्ति के नाम का इस्तेमाल किया गया है उससे जुड़े दस्तावेज़ और क्वेरी में जिस व्यक्ति के नाम का इस्तेमाल किया गया है उसकी कर्मचारी की जानकारी. बाद वाले टाइप के नतीजे, Cloud Search की 'लोगों को खोजें' सुविधा का फ़ंक्शन हैं. इस तरह की क्वेरी के नतीजे, क्वेरी एपीआई के जवाब के structuredResults फ़ील्ड में देखे जा सकते हैं:

{
  "results": [...],
  "structuredResults": [{
    "person": {...}
  }]
}

डायरेक्ट रिपोर्ट मैचिंग

डायरेक्ट रिपोर्ट मैचिंग, Cloud Search की 'लोगों को खोजें' सुविधा है. इसकी मदद से, उपयोगकर्ता अपने संगठन में किसी व्यक्ति की डायरेक्ट रिपोर्ट देख सकते हैं. नतीजा, structuredResults फ़ील्ड में उपलब्ध है.

किसी व्यक्ति के मैनेजर या सीधे तौर पर रिपोर्ट करने वाले लोगों के बारे में क्वेरी के जवाब में, structuredResults के अंदर assistCardProtoHolder होता है. assistCardProtoHolder में cardType नाम का एक फ़ील्ड है, जो RELATED_PEOPLE_ANSWER_CARD के बराबर होगा. assistCardProtoHolder में relatedPeopleAnswerCard नाम का एक कार्ड होता है, जिसमें असल जवाब होता है. इसमें subject (वह व्यक्ति जिसे क्वेरी में शामिल किया गया था) और relatedPeople शामिल हैं. ये विषय से जुड़े लोगों का सेट होता है. relationType फ़ील्ड, MANAGER या DIRECT_REPORTS वैल्यू दिखाता है.

नीचे दिए गए कोड में, क्वेरी से मैच करने वाली डायरेक्ट रिपोर्ट के लिए जवाब का उदाहरण दिया गया है:

{
  "results": [],
  "structuredResults": [{
    "assistCardProtoHolder": {
      "extensions": {
        "@type": "type.googleapis.com/enterprise.topaz.sidekick.AssistCardProto",
        "cardMetadata": {
          "cardCategory": "ANSWER"
        },
        "cardType": "RELATED_PEOPLE_ANSWER_CARD",
        "relatedPeopleAnswerCard": {
          "subject": {
            "email": "AdamStanford@psincs-test01.newjnj.com",
            "displayName": "Adam Stanford"
            "manager": {
              "email": "simonsais@psincs-test01.newjnj.com"
            }
          },
          "relatedPeople": [{
            "email": "EdgarMountainRamirez@psincs-test01.newjnj.com",
            "displayName": "Edgar Mountain Ramirez"
          }, {
            "email": "FranciscoJoseMartinez@psincs-test01.newjnj.com",
            "displayName": "Francisco Jose Martinez"
          }],
          "relationType": "DIRECT_REPORTS",
        }
      }
    }
  }]
}

ऑप्टिमाइज़ेशन की सुविधा बंद करना. इसमें, पूरक नतीजे भी शामिल हैं

डिफ़ॉल्ट रूप से, ऑप्टिमाइज़ेशन चालू होते हैं. जैसे, अन्य नतीजे. हालांकि, आपके पास खोज ऐप्लिकेशन और क्वेरी, दोनों लेवल पर सभी ऑप्टिमाइज़ेशन या सिर्फ़ सहायक नतीजों को बंद करने का विकल्प है:

  • खोज ऐप्लिकेशन के लेवल पर सभी ऑप्टिमाइज़ेशन बंद करने के लिए, QueryInterpretationConfig.force_verbatim_mode को true पर सेट करें. इन ऑप्टिमाइज़ेशन में, अतिरिक्त नतीजे, मिलते-जुलते शब्द, और वर्तनी में सुधार करने की सुविधा शामिल है.

  • खोज क्वेरी के लेवल पर सभी ऑप्टिमाइज़ेशन बंद करने के लिए, खोज क्वेरी में QueryInterpretationOptions.enableVerbatimMode को true पर सेट करें. इन ऑप्टिमाइज़ेशन में, अतिरिक्त नतीजे, मिलते-जुलते शब्द, और वर्तनी में सुधार करने की सुविधा शामिल है.

  • खोज ऐप्लिकेशन-लेवल पर, अन्य नतीजे दिखाने की सुविधा बंद करने के लिए, खोज क्वेरी में QueryInterpretationOptions.forceDisableSupplementalResults को true पर सेट करें.

  • खोज क्वेरी के लेवल पर, अन्य नतीजे दिखाने की सुविधा बंद करने के लिए, खोज क्वेरी में QueryInterpretationOptions.disableSupplementalResults को true पर सेट करें.

स्निपेट हाइलाइट करना

इंडेक्स किए गए टेक्स्ट या एचटीएमएल कॉन्टेंट वाले आइटम के लिए, कॉन्टेंट का स्निपेट दिखाया जाता है. इस कॉन्टेंट से, खरीदारों को यह तय करने में मदद मिलती है कि लौटाए गए आइटम का इस्तेमाल किया जा सकता है या नहीं.

अगर स्निपेट में क्वेरी के शब्द मौजूद हैं, तो शब्दों की जगह की जानकारी देने वाली एक या उससे ज़्यादा मैच रेंज भी दिखाई जाती हैं.

नतीजे रेंडर करते समय, मैच होने वाले टेक्स्ट को हाइलाइट करने के लिए matchRanges का इस्तेमाल करें. यहां दिया गया JavaScript उदाहरण, स्निपेट को एचटीएमएल मार्कअप में बदलता है. इसमें मैच होने वाली हर रेंज को <span> टैग में लपेटा जाता है.

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...

डिसप्ले मेटाडेटा

लौटाए गए आइटम के बारे में ऐसी अतिरिक्त जानकारी दिखाने के लिए metadata फ़ील्ड का इस्तेमाल करें जो उपयोगकर्ताओं के लिए काम की हो. metadata फ़ील्ड में आइटम का createTime और updateTime शामिल होता है. साथ ही, आइटम से जुड़ा ऐसा स्ट्रक्चर्ड डेटा भी शामिल होता है जिसे लौटाया जा सकता है.

स्ट्रक्चर्ड डेटा दिखाने के लिए, displayOptions फ़ील्ड का इस्तेमाल करें. displayOptions फ़ील्ड में, ऑब्जेक्ट टाइप के लिए डिसप्ले लेबल और metalines का एक सेट होता है. हर मेटालाइन, स्कीमा में कॉन्फ़िगर किए गए डिसप्ले लेबल और वैल्यू पेयर का कलेक्शन होती है.

ज़्यादा नतीजे पाना

ज़्यादा नतीजे पाने के लिए, अनुरोध में start फ़ील्ड को अपनी पसंद के ऑफ़सेट पर सेट करें. pageSize फ़ील्ड की मदद से, हर पेज के साइज़ में बदलाव किया जा सकता है.

खोज के नतीजों में मिले आइटम की संख्या दिखाने या खोज के नतीजों में मिले आइटम के पेज पर जाने के लिए, resultCount फ़ील्ड का इस्तेमाल करें. नतीजे के सेट के साइज़ के आधार पर, असल वैल्यू या अनुमानित वैल्यू दी जाती है.

नतीजों को क्रम से लगाएं

लौटाए गए आइटम का क्रम बताने के लिए, sortOptions फ़ील्ड का इस्तेमाल करें. sortOptions वैल्यू एक ऑब्जेक्ट है, जिसमें दो फ़ील्ड होते हैं:

  • operatorName — स्ट्रक्चर्ड डेटा प्रॉपर्टी के लिए ऑपरेटर, जिससे प्रॉपर्टी को क्रम से लगाया जा सकता है. एक से ज़्यादा ऑपरेटर वाली प्रॉपर्टी के लिए, सिर्फ़ बराबरी वाले मुख्य ऑपरेटर का इस्तेमाल करके क्रम से लगाया जा सकता है.
  • sortOrder — क्रम से लगाने की दिशा, ASCENDING या DESCENDING.

काम के होने की सुविधा का इस्तेमाल, क्रम से लगाने के लिए सेकंडरी कुंजी के तौर पर भी किया जाता है. अगर किसी क्वेरी में, क्रम से लगाने का कोई तरीका तय नहीं किया गया है, तो नतीजों की रैंकिंग सिर्फ़ इस आधार पर की जाती है कि वे क्वेरी के हिसाब से कितने काम के हैं.

"sortOptions": {
  "operatorName": "priority",
  "sortOrder": "DESCENDING"
}

फ़िल्टर जोड़ना

क्वेरी एक्सप्रेशन के अलावा, फ़िल्टर लागू करके भी नतीजों को सीमित किया जा सकता है. खोज अनुरोध और खोज के लिए इस्तेमाल होने वाले ऐप्लिकेशन, दोनों में फ़िल्टर तय किए जा सकते हैं.

अनुरोध या खोज अनुरोध में फ़िल्टर जोड़ने के लिए, dataSourceRestrictions.filterOptions[] फ़ील्ड में फ़िल्टर जोड़ें.

किसी डेटा सोर्स को और फ़िल्टर करने के दो मुख्य तरीके हैं:

  • filterOptions[].objectType प्रॉपर्टी की मदद से ऑब्जेक्ट फ़िल्टर — मैच करने वाले आइटम को, कस्टम स्कीमा में बताए गए टाइप तक सीमित करता है.
  • वैल्यू फ़िल्टरक्वेरी ऑपरेटर और दी गई वैल्यू के आधार पर, मैच होने वाले आइटम पर पाबंदी लगाता है.

कंपोज़िट फ़िल्टर की मदद से, कई वैल्यू फ़िल्टर को लॉजिकल एक्सप्रेशन में जोड़ा जा सकता है. इससे, ज़्यादा कॉम्प्लेक्स क्वेरी की जा सकती हैं.

फ़िल्म के स्कीमा के उदाहरण में, मौजूदा उपयोगकर्ता के आधार पर उम्र से जुड़ी पाबंदी लगाई जा सकती है. साथ ही, एमपीएए रेटिंग के आधार पर उपलब्ध फ़िल्मों पर पाबंदी लगाई जा सकती है.

{
  "query": "adventure",
  "requestOptions": {
    "searchApplicationId": "<search_app_id>"
  },
  "dataSourceRestrictions": [
    {
      "source": {
        "name": "datasources/<data_source_id>"
      },
      "filterOptions": [
        {
          "objectType": "movie",
          "filter": {
            "compositeFilter": {
              "logicOperator": "AND"
              "subFilters": [
                {
                  "compositeFilter": {
                  "logicOperator": "OR"
                  "subFilters": [
                    {
                      "valueFilter": {
                        "operatorName": "rated",
                        "value": {
                          "stringValue": "G"
                        }
                      }
                    },
                    {
                      "valueFilter": {
                        "operatorName": "rated",
                        "value": {
                          "stringValue": "PG"
                        }
                      }
                    }
                  ]
                }
              ]
            }
          }
        }
      ]
    }
  ]
}

फ़ेसेट की मदद से नतीजों को बेहतर बनाना

फ़ेसेट, इंडेक्स की गई प्रॉपर्टी होती हैं. इनसे खोज के नतीजों को बेहतर बनाने के लिए कैटगरी के बारे में पता चलता है. फ़ेसेट का इस्तेमाल करके, उपयोगकर्ताओं को इंटरैक्टिव तरीके से अपनी क्वेरी को बेहतर बनाने और काम के आइटम तेज़ी से ढूंढने में मदद करें.

फ़ेसेट को सर्च ऐप्लिकेशन में तय किया जा सकता है. साथ ही, क्वेरी में सेटिंग की मदद से इन फ़ेसेट को बदला जा सकता है.

फ़ेसेट का अनुरोध करने पर, Cloud Search, मैच होने वाले आइटम में से, अनुरोध की गई प्रॉपर्टी के लिए सबसे ज़्यादा इस्तेमाल होने वाली वैल्यू का हिसाब लगाता है. ये वैल्यू, जवाब में दिखती हैं. इन वैल्यू का इस्तेमाल करके, ऐसे फ़िल्टर बनाएं जिनसे बाद की क्वेरी के नतीजे कम हो जाएं.

फ़ेसेट के साथ इंटरैक्शन का सामान्य पैटर्न यह है:

  1. शुरुआती क्वेरी बनाकर बताएं कि फ़ेसेट के नतीजों में कौनसी प्रॉपर्टी शामिल करनी हैं.
  2. खोज और फ़ेसेट के नतीजे रेंडर करें.
  3. नतीजों को बेहतर बनाने के लिए, उपयोगकर्ता एक या उससे ज़्यादा फ़ेसेट वैल्यू चुनता है.
  4. चुनी गई वैल्यू के आधार पर, फ़िल्टर की मदद से क्वेरी दोहराएं.

उदाहरण के लिए, साल और एमपीएए रेटिंग के हिसाब से फ़िल्म क्वेरी को बेहतर बनाने के लिए, क्वेरी में facetOptions प्रॉपर्टी शामिल करें.

"facetOptions": [
  {
    "sourceName": "datasources/<data_source_id>",
    "operatorName": "year"
  },
  {
    "sourceName": "datasources/<data_source_id>",
    "operatorName": "rated"
  }
]

पूर्णांक पर आधारित फ़ील्ड के साथ फ़ेसेट के नतीजे

पूर्णांक पर आधारित फ़ील्ड की मदद से भी, नतीजों के लिए फ़ेसेट का अनुरोध किया जा सकता है. उदाहरण के लिए, "100-200" पेजों वाली किताबों के बारे में खोज के नतीजों को बेहतर बनाने के लिए, book_pages नाम की पूर्णांक प्रॉपर्टी को फ़ेसटेबल के तौर पर मार्क किया जा सकता है.

इंटिजर प्रॉपर्टी फ़ील्ड स्कीमा सेट अप करते समय, isFacetable को true पर सेट करें और integerPropertyOptions में उससे जुड़े बकेट करने के विकल्प जोड़ें. इससे यह पक्का होता है कि हर इंटिजर-फ़ेसटेबल प्रॉपर्टी में, डिफ़ॉल्ट बकेट करने के विकल्प तय हों.

बकेट करने के विकल्पों के लॉजिक को तय करते समय, रेंज दिखाने वाली इंक्रीमेंटल वैल्यू का ऐरे दें. उदाहरण के लिए, अगर असली उपयोगकर्ता रेंज को 2, 5, 10, 100 के तौर पर तय करता है, तो <2, [2-5), [5-10), [10-100), >=100 के लिए फ़ेसेट का हिसाब लगाया जाता है.

अनुरोध में facetOptions के लिए, बकेट करने के वही विकल्प तय करके, पूर्णांक पर आधारित फ़ेसेट को बदला जा सकता है. अगर ज़रूरी हो, तो Cloud Search, स्कीमा में बताए गए बकेट करने के विकल्पों का इस्तेमाल करता है. ऐसा तब होता है, जब खोज ऐप्लिकेशन या क्वेरी अनुरोध में फ़ेसेट के विकल्प तय न किए गए हों. क्वेरी में तय किए गए फ़ेसेट, खोज ऐप्लिकेशन में तय किए गए फ़ेसेट के मुकाबले प्राथमिकता पाते हैं. साथ ही, खोज ऐप्लिकेशन में तय किए गए फ़ेसेट, स्कीमा में तय किए गए फ़ेसेट के मुकाबले प्राथमिकता पाते हैं.

दस्तावेज़ के साइज़ या तारीख के हिसाब से फ़ेसेट के नतीजे

रिज़र्व किए गए ऑपरेटर का इस्तेमाल करके, खोज के नतीजों को बेहतर बनाया जा सकता है. जैसे, दस्तावेज़ के फ़ाइल साइज़ के हिसाब से, जिसे बाइट में मेज़र किया जाता है या दस्तावेज़ को बनाने या उसमें बदलाव करने की तारीख के हिसाब से. आपको कस्टम स्कीमा तय करने की ज़रूरत नहीं है. हालांकि, आपको अपने सर्च ऐप्लिकेशन के FacetOptions में operatorName वैल्यू की जानकारी देनी होगी.

  • दस्तावेज़ के साइज़ के हिसाब से फ़ेसेट करने के लिए, itemsize का इस्तेमाल करें और बकेट करने के विकल्प तय करें.
  • दस्तावेज़ बनाने की तारीख के हिसाब से फ़ेसेट करने के लिए, createddatetimestamp का इस्तेमाल करें.
  • दस्तावेज़ में बदलाव करने की तारीख के हिसाब से फ़ेसेट करने के लिए, lastmodified का इस्तेमाल करें.

फ़ेसेट बकेट की व्याख्या करना

खोज क्वेरी के जवाब में मौजूद facetResults प्रॉपर्टी में, हर bucket के लिए filter फ़ील्ड में, उपयोगकर्ता का सटीक फ़िल्टर अनुरोध शामिल होता है.

पूर्णांक पर आधारित नहीं होने वाले फ़ेसेट के लिए, facetResults में अनुरोध की गई हर प्रॉपर्टी के लिए एक एंट्री शामिल होती है. हर प्रॉपर्टी के लिए, वैल्यू या रेंज की एक सूची दी जाती है. इसे buckets कहा जाता है. सबसे ज़्यादा बार आने वाली वैल्यू सबसे पहले दिखती हैं.

जब कोई उपयोगकर्ता फ़िल्टर करने के लिए एक या उससे ज़्यादा वैल्यू चुनता है, तो चुने गए फ़िल्टर के साथ एक नई क्वेरी बनाएं और एपीआई से फिर से क्वेरी करें.

सुझाव जोड़ना

उपयोगकर्ता की निजी क्वेरी के इतिहास के साथ-साथ संपर्कों और उनके दस्तावेज़ों के कॉर्पस के आधार पर, क्वेरी के लिए ऑटो-कंप्लीट की सुविधा देने के लिए, suggest API का इस्तेमाल करें.

उदाहरण के लिए, नीचे दिया गया कॉल, jo वाले कुछ हिस्से के लिए सुझाव देता है.

{
  "query": "jo",
  "requestOptions": {
    "searchApplicationId": "<search_app_id>",
    "peoplePhotoOptions": {
      "peoplePhotoUrlSizeInPx": 32
    },
    "timeZone": "America/Denver"
  }
}

इसके बाद, अपने ऐप्लिकेशन के हिसाब से सुझाव दिखाए जा सकते हैं.