Dela via


Snabbstart: Anropa slutpunkten för anpassad Bing-sökning med Java

Varning

Den 30 oktober 2020 flyttades Bing-sökning-API:erna från Azure AI-tjänster till Bing-sökning Services. Den här dokumentationen tillhandahålls endast som referens. Uppdaterad dokumentation finns i dokumentationen för API:et för Bing-sökning. Anvisningar om hur du skapar nya Azure-resurser för Bing-sökning finns i Skapa en Bing-sökning resurs via Azure Marketplace.

Använd den här snabbstarten om du vill lära dig hur du begär sökresultat från din instans av anpassad Bing-sökning. Även om det här programmet är skrivet i Java är API:et för anpassad sökning i Bing en RESTful-webbtjänst som är kompatibel med de flesta programmeringsspråk. Källkoden för det här exemplet finns på GitHub.

Förutsättningar

Skapa en Azure-resurs

Börja använda API:et för anpassad Bing-sökning genom att skapa någon av följande Azure-resurser.

Resurs för anpassad Bing-sökning

  • Tillgänglig via Azure Portal tills du tar bort resursen.
  • Använd den kostnadsfria prisnivån för att prova tjänsten och uppgradera senare till en betald nivå för produktion.

Resurs för flera tjänster

  • Tillgänglig via Azure Portal tills du tar bort resursen.
  • Använd samma nyckel och slutpunkt för dina program i flera Azure AI-tjänster.

Skapa och initiera appen

  1. Skapa ett nytt Java-projekt i valfri IDE eller redigeringsprogram och importera följande bibliotek:

    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;
    
  2. Skapa en klass med namnet CustomSrchJavaoch skapa sedan variabler för prenumerationsnyckeln, slutpunkten för anpassad sökning och sökinstansens anpassade konfigurations-ID. Du kan använda den globala slutpunkten i följande kod eller använda den anpassade underdomänslutpunkten som visas i Azure Portal för resursen.

    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";  
    ...
    
  3. Skapa en annan klass med namnet SearchResults som ska innehålla svaret från instansen för Anpassad Bing-sökning.

    class SearchResults {
        HashMap<String, String> relevantHeaders;
        String jsonResponse;
        SearchResults(HashMap<String, String> headers, String json) {
            relevantHeaders = headers;
            jsonResponse = json;
        }
    }
    
  4. Skapa en funktion med namnet prettify() för att formatera JSON-svaret från API för anpassad Bing-sökning.

        // 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);
        }
    

Skicka och ta emot en sökbegäran

  1. Skapa en funktion med namnet SearchWeb() som skickar en begäran och returnerar ett SearchResults-objekt. Skapa begärande-URL:en genom att kombinera ditt anpassade konfigurations-ID, fråga och slutpunktsinformation. Lägg till din prenumerationsnyckel i Ocp-Apim-Subscription-Key-huvudet.

    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);
    ...
    
  2. Skapa en ström och lagra JSON-svaret i ett SearchResults-objekt.

    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;
        }
    
  3. Skriv ut JSON-svaret.

    System.out.println("\nJSON Response:\n");
    System.out.println(prettify(result.jsonResponse));
    
  4. Kör programmet.

Nästa steg