Rychlý start: Navrhování vyhledávacích dotazů pomocí rozhraní REST API pro automatické návrhy Bingu a jazyka C#
Upozornění
30. října 2020 se rozhraní API Vyhledávání Bingu přesunula ze služeb Azure AI na Vyhledávání Bingu Services. Tato dokumentace je k dispozici pouze pro referenci. Aktualizovanou dokumentaci najdete v dokumentaci k rozhraní API bingu pro vyhledávání. Pokyny k vytváření nových prostředků Azure pro vyhledávání Bingem najdete v tématu Vytvoření prostředku Vyhledávání Bingu prostřednictvím Azure Marketplace.
V tomto rychlém startu se dozvíte, jak volat rozhraní API pro automatické návrhy Bingu a přečíst si odpověď JSON. Tato jednoduchá aplikace v jazyce C# odešle do rozhraní API částečný vyhledávací dotaz a vrátí návrhy hledání. Aplikace je sice napsaná v C#, ale rozhraní API je webová služba RESTful kompatibilní s většinou programovacích jazyků. Zdrojový kód pro tuto ukázku je k dispozici na GitHubu.
Požadavky
- Libovolná edice sady Visual Studio 2017 nebo novější.
- Pokud používáte Linux nebo MacOS, můžete tuto aplikaci spustit pomocí Mono.
Vytvoření prostředku Azure
Začněte používat rozhraní API pro automatické návrhy Bingu vytvořením jednoho z následujících prostředků Azure.
Prostředek automatických návrhů Bingu
- Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
- K vyzkoušení služby použijte bezplatnou cenovou úroveň a později upgradujte na placenou úroveň pro produkční prostředí.
- Automatické návrhy Bingu se také nabízejí na placených úrovních prostředku Vyhledávání Bingu v7.
Prostředek s více službami
- Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
- Pro aplikace používejte stejný klíč a koncový bod napříč několika službami Azure AI.
Vytvoření řešení vizuálního vyhledávání
Vytvořte nové řešení konzoly v sadě Visual Studio. Pak do hlavního souboru kódu přidejte následující obory názvů.
using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.Text;
V nové třídě vytvořte proměnné pro hostitele a cestu rozhraní API, kód trhu a částečný vyhledávací dotaz. Použijte globální koncový bod v následujícím kódu nebo použijte vlastní koncový bod subdomény zobrazený v Azure Portal pro váš prostředek.
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";
Vytvoření a odeslání požadavku rozhraní API
Vytvořte funkci s názvem
Autosuggest()
pro odeslání požadavku do rozhraní API. Vytvořte novýHttpClient()
a přidejte klíč předplatného doOcp-Apim-Subscription-Key
záhlaví.async static void Autosuggest() { HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", key); //.. }
Ve stejné funkci výše vytvořte identifikátor URI požadavku tím, že zkombinujete hostitele rozhraní API a cestu. Připojte k parametru
mkt=
váš trh a k parametruquery=
váš dotaz. Nezapomeňte svůj dotaz zakódovat pomocí adresy URL.string uri = host + path + "?mkt=" + market + "&query=" + System.Net.WebUtility.UrlEncode (query);
Odešlete požadavek na výše vytvořený identifikátor URI a vytiskněte odpověď.
HttpResponseMessage response = await client.GetAsync(uri); string contentString = await response.Content.ReadAsStringAsync(); Console.WriteLine(contentString);
V hlavní metodě programu zavolejte
Autosuggest()
.static void Main(string[] args) { Autosuggest(); Console.ReadLine(); }
Příklad odpovědi JSON
Úspěšná odpověď se vrátí ve formátu JSON, jak je znázorněno v následujícím příkladu:
{
"_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"
}
]
}
]
}