Mulai Cepat: Menyarankan kueri pencarian dengan Bing Autosuggest REST API dan Node.js
Peringatan
Pada 30 Oktober 2020, API Bing Search dipindahkan dari layanan Azure AI ke layanan Bing Search. Dokumentasi ini disediakan hanya untuk referensi. Untuk dokumentasi terbaru, lihat dokumentasi Bing Search API. Untuk petunjuk tentang cara membuat sumber daya Azure baru untuk pencarian Bing, lihat Membuat sumber daya Pencarian Bing melalui Marketplace Azure.
Ikuti mulai cepat ini untuk mempelajari cara melakukan panggilan ke Bing Autosuggest API dan membaca respons JSON. Aplikasi Node.js sederhana ini mengirimkan kueri pencarian parsial ke API, dan mengembalikan saran untuk pencarian. Meskipun aplikasi ini ditulis dalam JavaScript, API adalah layanan Web RESTful yang kompatibel dengan sebagian besar bahasa pemrograman. Kode sumber untuk sampel ini tersedia di GitHub
Prasyarat
- Node.js 6 atau yang lebih baru
Membuat grup sumber daya Azure
Mulai gunakan Bing Autosuggest API dengan membuat salah satu sumber daya Azure berikut.
Sumber daya Bing Autosuggest
- Tersedia melalui portal Azure hingga Anda menghapus sumber daya.
- Gunakan tingkat harga gratis untuk mencoba layanan, dan tingkatkan ke tingkat berbayar untuk produksi di kemudian hari.
- Bing Autosuggest juga ditawarkan dalam tingkat berbayar sumber daya Bing Search v7.
Sumber daya multilayanan
- Tersedia melalui portal Microsoft Azure hingga Anda menghapus sumber daya.
- Gunakan kunci dan titik akhir yang sama untuk aplikasi Anda, di beberapa layanan Azure AI.
Membuat aplikasi baru
Buat file JavaScript baru di IDE atau editor favorit Anda, dan atur keketatan dan persyaratan https.
'use strict'; let https = require ('https');
Buat variabel untuk host dan jalur titik akhir API, kunci langganan Anda, kode pasar, dan istilah pencarian. Gunakan titik akhir global dalam kode berikut, atau gunakan titik akhir subdomain kustom yang ditampilkan di portal Azure untuk sumber daya Anda.
// 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';
Buat permintaan pencarian dan kueri.
Buat string parameter untuk kueri Anda dengan menambahkan kode pasar ke parameter
mkt=
, dan kueri Anda ke parameterq=
.let params = '?mkt=' + mkt + '&q=' + query;
Buat fungsi yang disebut
get_suggestions()
. Gunakan variabel dari langkah terakhir untuk memformat URL pencarian untuk permintaan API. Istilah pencarian Anda harus dikodekan dengan URL sebelum dikirim ke API.let get_suggestions = function () { let request_params = { method : 'GET', hostname : host, path : path + params, headers : { 'Ocp-Apim-Subscription-Key' : subscriptionKey, } }; //... }
Dalam fungsi yang sama, gunakan pustaka permintaan untuk mengirim kueri Anda ke API.
response_handler
ditentukan di bagian berikutnya.//... let req = https.request(request_params, response_handler); req.end();
Membuat handler pencarian
Tentukan fungsi bernama
response_handler
yang menggunakan panggilan HTTP,response
, sebagai parameter. Lakukan langkah-langkah berikut dalam fungsi ini:Tentukan variabel yang berisi isi respons JSON.
let response_handler = function (response) { let body = ''; };
Menyimpan isi respons saat bendera
data
dipanggilresponse.on ('data', function (d) { body += d; });
Saat bendera
end
ditandai, gunakanJSON.parse()
danJSON.stringify()
untuk mencetak respons.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); });
Panggil
get_suggestions()
untuk mengirim permintaan ke Bing Autosuggest API.
Contoh respons JSON
Respons yang berhasil dikembalikan di JSON, seperti yang diperlihatkan dalam contoh berikut:
{
"_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"
}
]
}
]
}