Udostępnij za pośrednictwem


Szybki start: wywoływanie punktu końcowego wyszukiwania niestandardowego Bing przy użyciu języka Java

Ostrzeżenie

30 października 2020 r. interfejsy API Wyszukiwanie Bing zostały przeniesione z usług Azure AI do usług Wyszukiwanie Bing Services. Ta dokumentacja jest dostarczana tylko do celów referencyjnych. Aby uzyskać zaktualizowaną dokumentację, zobacz dokumentację interfejsu API wyszukiwania Bing. Aby uzyskać instrukcje dotyczące tworzenia nowych zasobów platformy Azure na potrzeby wyszukiwania Bing, zobacz Tworzenie zasobu Wyszukiwanie Bing za pomocą Azure Marketplace.

Skorzystaj z tego przewodnika Szybki start, aby dowiedzieć się, jak żądać wyników wyszukiwania z wystąpienia wyszukiwania niestandardowego Bing. Mimo że ta aplikacja jest napisana w języku Java, interfejs API wyszukiwania niestandardowego Bing jest usługą internetową RESTful zgodną z większością języków programowania. Kod źródłowy dla tego przykładu jest dostępny w witrynie GitHub.

Wymagania wstępne

Tworzenie zasobu platformy Azure

Zacznij korzystać z interfejsu API wyszukiwania niestandardowego Bing, tworząc jeden z następujących zasobów platformy Azure.

Zasób wyszukiwania niestandardowego Bing

  • Dostępne za pośrednictwem Azure Portal do momentu usunięcia zasobu.
  • Użyj warstwy cenowej Bezpłatna, aby wypróbować usługę, a następnie uaktualnić ją do warstwy płatnej dla środowiska produkcyjnego.

Zasób z wieloma usługami

  • Dostępne za pośrednictwem Azure Portal do momentu usunięcia zasobu.
  • Użyj tego samego klucza i punktu końcowego dla aplikacji w wielu usługach azure AI.

Tworzenie i inicjowanie aplikacji

  1. Utwórz nowy projekt Java w ulubionym środowisku IDE lub edytorze i zaimportuj następujące biblioteki:

    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. Utwórz klasę o nazwie CustomSrchJava, a następnie utwórz zmienne dla klucza subskrypcji, niestandardowego punktu końcowego wyszukiwania i niestandardowego identyfikatora konfiguracji wystąpienia wyszukiwania. Możesz użyć globalnego punktu końcowego w poniższym kodzie lub użyć niestandardowego punktu końcowego poddomeny wyświetlanego w Azure Portal dla zasobu.

    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. Utwórz inną klasę o nazwie SearchResults, która będzie zawierać odpowiedź z wystąpienia wyszukiwania niestandardowego Bing.

    class SearchResults {
        HashMap<String, String> relevantHeaders;
        String jsonResponse;
        SearchResults(HashMap<String, String> headers, String json) {
            relevantHeaders = headers;
            jsonResponse = json;
        }
    }
    
  4. Utwórz funkcję o nazwie prettify() w celu formatowania odpowiedzi JSON z interfejsu API wyszukiwania niestandardowego 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);
        }
    

Wysyłanie i odbieranie żądania wyszukiwania

  1. Utwórz funkcję o nazwie SearchWeb(), która będzie wysyłać żądanie i zwracać obiekt SearchResults. Utwórz adres URL żądania, łącząc niestandardowy identyfikator konfiguracji, zapytanie i informacje o punkcie końcowym. Dodaj klucz subskrypcji do nagłówka Ocp-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);
    ...
    
  2. Utwórz strumień i umieść odpowiedź JSON w obiekcie 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;
        }
    
  3. Wydrukuj odpowiedź JSON.

    System.out.println("\nJSON Response:\n");
    System.out.println(prettify(result.jsonResponse));
    
  4. Uruchomisz program.

Następne kroki