Megosztás a következőn keresztül:


Rövid útmutató: A Bing Custom Search-végpont meghívása Java használatával

Figyelmeztetés

2020. október 30-án a Bing Search API-k átkerültek az Azure AI-szolgáltatásokból a Bing Search-szolgáltatásokba. Ez a dokumentáció csak referenciaként érhető el. A frissített dokumentációt a Bing search API dokumentációjában találja. Az új Azure-erőforrások Bing-kereséshez való létrehozásával kapcsolatos utasításokért lásd: Bing Search-erőforrás létrehozása a Azure Marketplace keresztül.

Ebből a rövid útmutatóból megtudhatja, hogyan kérhet keresési eredményeket a Bing Custom Search-példánytól. Bár ez az alkalmazás Java nyelven van megírva, a Bing Custom Search API egy RESTful webszolgáltatás, amely kompatibilis a legtöbb programozási nyelvvel. A minta forráskódja elérhető a GitHubon.

Előfeltételek

Azure-erőforrás létrehozása

Kezdje el használni a Bing Custom Search API-t az alábbi Azure-erőforrások egyikének létrehozásával.

Bing Custom Search-erőforrás

  • A Azure Portal keresztül érhető el, amíg el nem törli az erőforrást.
  • Az ingyenes tarifacsomag használatával próbálja ki a szolgáltatást, és frissítsen később egy fizetős tarifacsomagra éles környezetben.

Többszolgáltatásos erőforrás

  • A Azure Portal keresztül érhető el, amíg el nem törli az erőforrást.
  • Használja ugyanazt a kulcsot és végpontot az alkalmazásokhoz több Azure AI-szolgáltatásban.

Az alkalmazás létrehozása és inicializálása

  1. Hozzon létre egy új Java-projektet a kedvenc IDE-jében vagy szerkesztőjében, és importálja a következő kódtárakat:

    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. Hozzon létre egy nevű osztályt CustomSrchJava, majd hozzon létre változókat az előfizetési kulcshoz, az egyéni keresési végponthoz és a keresési példány egyéni konfigurációs azonosítójához. Használhatja a globális végpontot a következő kódban, vagy használhatja az erőforráshoz tartozó Azure Portal megjelenített egyéni altartományvégpontot.

    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. Hozzon létre egy másik nevű SearchResults osztályt, amely tartalmazza a Bing Custom Search-példány válaszát.

    class SearchResults {
        HashMap<String, String> relevantHeaders;
        String jsonResponse;
        SearchResults(HashMap<String, String> headers, String json) {
            relevantHeaders = headers;
            jsonResponse = json;
        }
    }
    
  4. Hozzon létre egy nevű prettify() függvényt a Bing Custom Search API JSON-válaszának formázásához.

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

Keresési kérelem küldése és fogadása

  1. Hozzon létre egy nevű SearchWeb() függvényt, amely kérést küld, és visszaad egy SearchResults objektumot. Hozza létre a kérelem URL-címét az egyéni konfigurációs azonosító, lekérdezés és végpont adatainak kombinálásával. Adja hozzá az előfizetési kulcsot a Ocp-Apim-Subscription-Key fejléchez.

    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. Hozzon létre egy streamet, és tárolja a JSON-választ egy SearchResults objektumban.

    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. Nyomtassa ki a JSON-választ.

    System.out.println("\nJSON Response:\n");
    System.out.println(prettify(result.jsonResponse));
    
  4. Futtassa a programot.

Következő lépések