Guida introduttiva: Chiamare l'endpoint di Ricerca personalizzata Bing usando Java
Avviso
Il 30 ottobre 2020 le API di Ricerca Bing spostate dai servizi di intelligenza artificiale di Azure ai servizi Ricerca Bing. Questa documentazione viene fornita solo per informazioni di riferimento. Per la documentazione aggiornata, vedere la documentazione dell'API di ricerca Bing. Per istruzioni sulla creazione di nuove risorse di Azure per la ricerca Bing, vedere Creare una risorsa Ricerca Bing tramite la Azure Marketplace.
Usare questo argomento di avvio rapido per informazioni su come richiedere risultati della ricerca dall'istanza di Ricerca personalizzata Bing. Anche se l'applicazione è scritta in Java, l'API Ricerca personalizzata Bing è un servizio Web RESTful compatibile con la maggior parte dei linguaggi di programmazione. Il codice sorgente di questo esempio è disponibile in GitHub.
Prerequisiti
Un'istanza di Ricerca personalizzata Bing. Per altre informazioni, vedere Avvio rapido: Creare la prima istanza di Ricerca personalizzata Bing.
La versione più recente di Java Development Kit.
Creare una risorsa di Azure
Per iniziare a usare l'API Ricerca personalizzata Bing, creare una delle risorse di Azure seguenti.
Risorsa Ricerca personalizzata Bing
- disponibile tramite il portale di Azure fino a quando la risorsa non viene eliminata.
- Usare il piano tariffario gratuito per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.
Risorsa multiservizio
- disponibile tramite il portale di Azure fino a quando la risorsa non viene eliminata.
- Usare la stessa chiave e l'endpoint per le applicazioni in più servizi di intelligenza artificiale di Azure.
Creare e inizializzare l'applicazione
Creare un nuovo progetto Java nell'ambiente di sviluppo integrato o nell'editor preferito e importare le librerie seguenti:
import java.io.InputStream; import java.net.URL; import java.net.URLEncoder; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; import javax.net.ssl.HttpsURLConnection; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import com.google.gson.JsonParser;
Creare una classe denominata
CustomSrchJava
e quindi creare le variabili per la chiave di sottoscrizione, l'endpoint di Ricerca personalizzata e l'ID di configurazione personalizzata dell'istanza di ricerca. È possibile usare l'endpoint globale nel codice seguente o l'endpoint del sottodominio personalizzato visualizzato nel portale di Azure per la risorsa.public class CustomSrchJava { static String host = "https://api.cognitive.microsoft.com"; static String path = "/bingcustomsearch/v7.0/search"; static String subscriptionKey = "YOUR-SUBSCRIPTION-KEY"; static String customConfigId = "YOUR-CUSTOM-CONFIG-ID"; static String searchTerm = "Microsoft"; ...
Creare un'altra classe denominata
SearchResults
per contenere la risposta dall'istanza di Ricerca personalizzata Bing.class SearchResults { HashMap<String, String> relevantHeaders; String jsonResponse; SearchResults(HashMap<String, String> headers, String json) { relevantHeaders = headers; jsonResponse = json; } }
Creare una funzione denominata
prettify()
per formattare la risposta JSON dall'API Ricerca personalizzata Bing.// pretty-printer for JSON; uses GSON parser to parse and re-serialize public static String prettify(String json_text) { JsonParser parser = new JsonParser(); JsonObject json = parser.parse(json_text).getAsJsonObject(); Gson gson = new GsonBuilder().setPrettyPrinting().create(); return gson.toJson(json); }
Inviare e ricevere una richiesta di ricerca
Creare una funzione denominata
SearchWeb()
che invia una richiesta e restituisce un oggettoSearchResults
. Creare l'URL della richiesta combinando l'ID di configurazione personalizzato, la query e le informazioni sull'endpoint. Aggiungere la chiave di sottoscrizione all'intestazioneOcp-Apim-Subscription-Key
.public class CustomSrchJava { ... public static SearchResults SearchWeb (String searchQuery) throws Exception { // construct the URL for your search request (endpoint + query string) URL url = new URL(host + path + "?q=" + URLEncoder.encode(searchTerm, "UTF-8") + "&CustomConfig=" + customConfigId); HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); connection.setRequestProperty("Ocp-Apim-Subscription-Key", subscriptionKey); ...
Creare un flusso e archiviare la risposta JSON in un oggetto
SearchResults
.public class CustomSrchJava { ... public static SearchResults SearchWeb (String searchQuery) throws Exception { ... // receive the JSON body InputStream stream = connection.getInputStream(); String response = new Scanner(stream).useDelimiter("\\A").next(); // construct result object for return SearchResults results = new SearchResults(new HashMap<String, String>(), response); stream.close(); return results; }
Stampare la risposta JSON.
System.out.println("\nJSON Response:\n"); System.out.println(prettify(result.jsonResponse));
Eseguire il programma.