Schnellstart: Vorschlagen von Suchabfragen mit der Bing-Vorschlagssuche-REST-API und Node.jsQuickstart: Suggest search queries with the Bing Autosuggest REST API and Node.js

In dieser Schnellstartanleitung erfahren Sie, wie Sie die Bing-Vorschlagssuche-API aufrufen und die JSON-Antwort erhalten.Use this quickstart to begin making calls to the Bing Autosuggest API and getting the JSON response. Diese einfache Node.js-Anwendung sendet eine partielle Suchabfrage an die API und gibt Vorschläge für Suchvorgänge zurück.This simple Node.js application sends a partial search query to the API, and returns suggestions for searches. Diese Anwendung ist zwar in JavaScript geschrieben, aber die API ist ein RESTful-Webdienst, der mit den meisten Programmiersprachen kompatibel ist.While this application is written in JavaScript, the API is a RESTful Web service compatible with most programming languages. Den Quellcode des Beispiels finden Sie auf GitHub.The source code for this sample is available on GitHub

VoraussetzungenPrerequisites

Erstellen einer Azure-RessourceCreate an Azure resource

Beginnen Sie mit der Verwendung der Bing-Vorschlagssuche-API, indem Sie eine der unten aufgeführten Azure-Ressourcen erstellen.Start using the Bing Autosuggest API by creating one of the Azure resources below.

  • Erstellen einer Testressource:Create a trial resource:

    • Kein Azure-Abonnement erforderlich.No Azure subscription needed.
    • Kostenlos und sieben Tage lang gültig.Valid for seven days, for free. Nach der Registrierung stehen ein Testschlüssel und ein Endpunkt auf der Azure-Website zur Verfügung.After signing up, a trial key and endpoint will be available on the Azure website.
  • Erstellen Sie eine Bing-Vorschlagssuche-Ressource:Create a Bing Autosuggest resource:

    • Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.Available through the Azure portal until you delete the resource.
    • Verwenden Sie den Tarif „Free“, um den Dienst zu testen, und führen Sie später für die Produktion ein Upgrade auf einen kostenpflichtigen Tarif durch.Use the free pricing tier to try the service, and upgrade later to a paid tier for production.
    • Die Bing-Vorschlagssuche wird auch in kostenpflichtigen Tarifen der Bing-Suche v7-Ressource angeboten.Bing Autosuggest is also offered in paid tiers of the Bing Search v7 resource.
  • Erstellen einer Ressource für mehrere Dienste:Create a Multi-Service resource:

    • Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.Available through the Azure portal until you delete the resource.
    • Verwenden Sie für Ihre Anwendungen den gleichen Schlüssel und Endpunkt über mehrere Cognitive Services-Instanzen hinweg.Use the same key and endpoint for your applications, across multiple Cognitive Services.

Erstellen einer neuen AnwendungCreate a new application

  1. Erstellen Sie eine neue JavaScript-Datei in Ihrer bevorzugten IDE oder Ihrem bevorzugten Editor, und legen Sie die Genauigkeit sowie die HTTPS-Anforderungen fest.Create a new JavaScript file in your favorite IDE or editor, and set the strictness and https requirements.

    'use strict';
    
    let https = require ('https');
    
  2. Erstellen Sie Variablen für Ihren den Host und Pfad Ihres API-Endpunkts, Ihren Abonnementschlüssel, Ihren Marktcode und eine Suchabfrage.Create variables for the API endpoint host and path, your subscription key, market code, and a search term. Sie können den unten angegebenen globalen Endpunkt oder den Endpunkt der benutzerdefinierten Unterdomäne verwenden, der im Azure-Portal für Ihre Ressource angezeigt wird.You can use the global endpoint below, or the custom subdomain endpoint displayed in the Azure portal for your resource.

    // Replace the subscriptionKey string value with your valid subscription key.
    let subscriptionKey = 'enter key here';
    
    let host = 'api.cognitive.microsoft.com';
    let path = '/bing/v7.0/Suggestions';
    
    let mkt = 'en-US';
    let query = 'sail';
    

Erstellen Sie die Suchanforderung und -abfrage.Construct the search request and query.

  1. Erstellen Sie eine Parameterzeichenfolge für die Abfrage, indem Sie den Marktcode an den Parameter mkt= und Ihre Abfrage an den Parameter q= anfügen.Create a parameters string for your query by appending the market code to the mkt= parameter, and your query to the q= parameter.

    let params = '?mkt=' + mkt + '&q=' + query;
    
  2. Erstellen Sie eine Funktion mit dem Namen get_suggestions().Create a function called get_suggestions(). Verwenden Sie die Variablen aus den vorherigen Schritten, um eine Such-URL für die API-Anforderung zu formatieren.Use the variables from the last steps to format a search URL for the API request. Der Suchbegriff muss URL-codiert werden, bevor er an die API gesendet wird.Your search term must be URL-encoded before being sent to the API.

    let get_suggestions = function () {
      let request_params = {
        method : 'GET',
        hostname : host,
        path : path + params,
        headers : {
          'Ocp-Apim-Subscription-Key' : subscriptionKey,
        }
      };
    //...
    }
    
    1. Verwenden Sie in der gleichen Funktion die Bibliothek für Anforderungen, um Ihre Abfrage an die API zu senden.In the same function, use the request library to send your query to the API. response_handler wird im nächsten Abschnitt definiert.response_handler will be defined in the next section.

      //...
      let req = https.request(request_params, response_handler);
      req.end();
      

Erstellen eines SuchhandlersCreate a search handler

  1. Definieren Sie eine Funktion mit der Bezeichnung response_handler, die einen HTTP-Aufruf, response, als Parameter verwendet.define a function named response_handler that takes an HTTP call, response, as a parameter. Führen Sie innerhalb dieser Funktion die folgenden Schritte aus:Do the following steps within this function:

    1. Definieren Sie eine Variable, die den Text der JSON-Antwort enthält.Define a variable to contain the body of the JSON response.

      let response_handler = function (response) {
          let body = '';
      };
      
    2. Speichern Sie den Text der Antwort, wenn das Flag data aufgerufen wird.Store the body of the response when the data flag is called

      response.on ('data', function (d) {
      body += d;
      });
      
    3. Wird ein Flag vom Typ end angezeigt, geben Sie die Antwort mithilfe von JSON.parse() und JSON.stringify() aus.When an end flag is signaled, user JSON.parse() and JSON.stringify() to print the response.

      response.on ('end', function () {
      let body_ = JSON.parse (body);
      let body__ = JSON.stringify (body_, null, '  ');
          console.log (body__);
      });
      response.on ('error', function (e) {
          console.log ('Error: ' + e.message);
      });
      
  2. Rufen Sie get_suggestions() auf, um die Anforderung an die Bing-Vorschlagssuche-API zu senden.Call get_suggestions() to send the request to the Bing Autosuggest API.

JSON-BeispielantwortExample JSON response

Es wird eine erfolgreiche Antwort im JSON-Format zurückgegeben, wie im folgenden Beispiel gezeigt:A successful response is returned in JSON, as shown in the following example:

{
  "_type": "Suggestions",
  "queryContext": {
    "originalQuery": "sail"
  },
  "suggestionGroups": [
    {
      "name": "Web",
      "searchSuggestions": [
        {
          "url": "https://www.bing.com/cr?IG\u003d2ACC4FE8B02F4AACB9182A6502B0E556\u0026CID\u003d1D546424A4CB64AF2D386F26A5CD6583\u0026rd\u003d1\u0026h\u003dgvtP9TS9NwhajSapY2Se6y1eCbP2fq_GiP2n-cxi6OY\u0026v\u003d1\u0026r\u003dhttps%3a%2f%2fwww.bing.com%2fsearch%3fq%3dsailrite%26FORM%3dUSBAPI\u0026p\u003dDevEx,5003.1",
          "displayText": "sailrite",
          "query": "sailrite",
          "searchKind": "WebSearch"
        },
        {
          "url": "https://www.bing.com/cr?IG\u003d2ACC4FE8B02F4AACB9182A6502B0E556\u0026CID\u003d1D546424A4CB64AF2D386F26A5CD6583\u0026rd\u003d1\u0026h\u003dBTS0G6AakxntIl9rmbDXtk1n6rQpsZZ99aQ7ClE7dTY\u0026v\u003d1\u0026r\u003dhttps%3a%2f%2fwww.bing.com%2fsearch%3fq%3dsail%2bsand%2bpoint%26FORM%3dUSBAPI\u0026p\u003dDevEx,5004.1",
          "displayText": "sail sand point",
          "query": "sail sand point",
          "searchKind": "WebSearch"
        },
        {
          "url": "https://www.bing.com/cr?IG\u003d2ACC4FE8B02F4AACB9182A6502B0E556\u0026CID\u003d1D546424A4CB64AF2D386F26A5CD6583\u0026rd\u003d1\u0026h\u003dc0QOA_j6swCZJy9FxqOwke2KslJE7ZRmMooGClAuCpY\u0026v\u003d1\u0026r\u003dhttps%3a%2f%2fwww.bing.com%2fsearch%3fq%3dsailboats%2bfor%2bsale%26FORM%3dUSBAPI\u0026p\u003dDevEx,5005.1",
          "displayText": "sailboats for sale",
          "query": "sailboats for sale",
          "searchKind": "WebSearch"
        },
        {
          "url": "https://www.bing.com/cr?IG\u003d2ACC4FE8B02F4AACB9182A6502B0E556\u0026CID\u003d1D546424A4CB64AF2D386F26A5CD6583\u0026rd\u003d1\u0026h\u003dmnMdREUH20SepmHQH1zlh9Hy_w7jpOlZFm3KG2R_BoA\u0026v\u003d1\u0026r\u003dhttps%3a%2f%2fwww.bing.com%2fsearch%3fq%3dsailing%2banarchy%26FORM%3dUSBAPI\u0026p\u003dDevEx,5006.1",
          "displayText": "sailing anarchy",
          "query": "sailing anarchy",
          "searchKind": "WebSearch"
        },
        {
          "url": "https://www.bing.com/cr?IG\u003d2ACC4FE8B02F4AACB9182A6502B0E556\u0026CID\u003d1D546424A4CB64AF2D386F26A5CD6583\u0026rd\u003d1\u0026h\u003dWLFO-B1GG5qtBGnoU1Bizz02YKkg5fgAQtHwhXn4z8I\u0026v\u003d1\u0026r\u003dhttps%3a%2f%2fwww.bing.com%2fsearch%3fq%3dsailpoint%26FORM%3dUSBAPI\u0026p\u003dDevEx,5007.1",
          "displayText": "sailpoint",
          "query": "sailpoint",
          "searchKind": "WebSearch"
        },
        {
          "url": "https://www.bing.com/cr?IG\u003d2ACC4FE8B02F4AACB9182A6502B0E556\u0026CID\u003d1D546424A4CB64AF2D386F26A5CD6583\u0026rd\u003d1\u0026h\u003dquBMwmKlGwqC5wAU0K7n416plhWcR8zQCi7r-Fw9Y0w\u0026v\u003d1\u0026r\u003dhttps%3a%2f%2fwww.bing.com%2fsearch%3fq%3dsailflow%26FORM%3dUSBAPI\u0026p\u003dDevEx,5008.1",
          "displayText": "sailflow",
          "query": "sailflow",
          "searchKind": "WebSearch"
        },
        {
          "url": "https://www.bing.com/cr?IG\u003d2ACC4FE8B02F4AACB9182A6502B0E556\u0026CID\u003d1D546424A4CB64AF2D386F26A5CD6583\u0026rd\u003d1\u0026h\u003d0udadFl0gCTKCp0QmzQTXS3_y08iO8FpwsoKPHPS6kw\u0026v\u003d1\u0026r\u003dhttps%3a%2f%2fwww.bing.com%2fsearch%3fq%3dsailboatdata%26FORM%3dUSBAPI\u0026p\u003dDevEx,5009.1",
          "displayText": "sailboatdata",
          "query": "sailboatdata",
          "searchKind": "WebSearch"
        },
        {
          "url": "https://www.bing.com/cr?IG\u003d2ACC4FE8B02F4AACB9182A6502B0E556\u0026CID\u003d1D546424A4CB64AF2D386F26A5CD6583\u0026rd\u003d1\u0026h\u003deSSt0MRSbl2V0RFPSuVd-gC7fGOT4717pz55EBUgPec\u0026v\u003d1\u0026r\u003dhttps%3a%2f%2fwww.bing.com%2fsearch%3fq%3dsailor%2b2025%26FORM%3dUSBAPI\u0026p\u003dDevEx,5010.1",
          "displayText": "sailor 2025",
          "query": "sailor 2025",
          "searchKind": "WebSearch"
        }
      ]
    }
  ]
}

Nächste SchritteNext steps