Schnellstart: Vorschlagen von Suchabfragen mit der Bing-Vorschlagssuche-REST-API und C#
Warnung
Am 30. Oktober 2020 wurden die Bing-Suche-APIs aus den Azure KI Services in die Bing-Suchdienste verschoben. Diese Dokumentation wird nur zu Referenzzwecken bereitgestellt. Eine aktualisierte Dokumentation finden Sie in der Dokumentation zu den Bing-Suche-APIs. Anweisungen zum Erstellen neuer Azure-Ressourcen für die Bing-Suche finden Sie unter Erstellen einer Ressource für die Bing-Suche über Azure Marketplace.
In dieser Schnellstartanleitung erfahren Sie, wie Sie die Bing-Vorschlagssuche-API aufrufen und die JSON-Antwort lesen. Diese einfache C#-Anwendung sendet eine partielle Suchabfrage an die API und gibt Vorschläge für Suchvorgänge zurück. Diese Anwendung ist zwar in C# geschrieben, an sich ist die API aber ein RESTful-Webdienst, der mit den meisten Programmiersprachen kompatibel ist. Den Quellcode des Beispiels finden Sie auf GitHub.
Voraussetzungen
- Eine beliebige Edition von Visual Studio 2017 oder höher.
- Unter Linux/macOS kann diese Anwendung mit Mono ausgeführt werden.
Erstellen einer Azure-Ressource
Beginnen Sie mit der Verwendung der Bing-Vorschlagssuche-API, indem Sie eine der folgenden Azure-Ressourcen erstellen:
Bing-Vorschlagssuche-Ressource
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- 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.
- Die Bing-Vorschlagssuche wird auch in kostenpflichtigen Tarifen der Bing-Suche v7-Ressource angeboten.
Ressource für mehrere Dienste
- Verfügbar über das Azure-Portal, bis Sie die Ressource löschen.
- Verwenden Sie in allen Azure KI Services-Instanzen denselben Schlüssel und Endpunkt für Ihre Anwendungen.
Erstellen einer Projektmappe für die visuelle Suche
Erstellen Sie eine neue Konsolenprojektmappe in Visual Studio. Fügen Sie dann die folgenden Namespaces in die Hauptcodedatei ein:
using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text;
Erstellen Sie in einer neuen Klasse Variablen für den API-Host und -Pfad, Ihren Marktcode und eine partielle Suchabfrage. Verwenden Sie den globalen Endpunkt im folgenden Code oder den Endpunkt der benutzerdefinierten Unterdomäne, der im Azure-Portal für Ihre Ressource angezeigt wird.
static string host = "https://api.cognitive.microsoft.com"; static string path = "/bing/v7.0/Suggestions"; static string market = "en-US"; static string key = "your-api-key"; static string query = "sail";
Erstellen und Senden einer API-Anforderung
Erstellen Sie eine Funktion mit dem Namen
Autosuggest()
, um eine Anforderung an die API zu senden. Erstellen Sie ein neuesHttpClient()
-Element, und fügen Sie dem HeaderOcp-Apim-Subscription-Key
Ihren Abonnementschlüssel hinzu.async static void Autosuggest() { HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", key); //.. }
Erstellen Sie in der gleichen Funktion oben einen Anforderungs-URI. Kombinieren Sie dazu Host und Pfad für Ihre API. Fügen Sie dem Parameter
mkt=
Ihren Markt und dem Parameterquery=
Ihre Abfrage hinzu. Fügen Sie Ihrer Abfrage unbedingt eine URL-Codierung hinzu.string uri = host + path + "?mkt=" + market + "&query=" + System.Net.WebUtility.UrlEncode (query);
Senden Sie die Anforderung an den oben erstellten URI, und geben Sie die Antwort aus.
HttpResponseMessage response = await client.GetAsync(uri); string contentString = await response.Content.ReadAsStringAsync(); Console.WriteLine(contentString);
Rufen Sie in der main-Methode des Programms
Autosuggest()
auf.static void Main(string[] args) { Autosuggest(); Console.ReadLine(); }
JSON-Beispielantwort
Es wird eine erfolgreiche Antwort im JSON-Format zurückgegeben, wie im folgenden Beispiel gezeigt:
{
"_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"
}
]
}
]
}