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
Wystąpienie wyszukiwania niestandardowego Bing. Aby uzyskać więcej informacji, zobacz Szybki start: tworzenie pierwszego wystąpienia wyszukiwania niestandardowego Bing.
Najnowszy zestaw Java Development Kit.
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
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;
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"; ...
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; } }
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
Utwórz funkcję o nazwie
SearchWeb()
, która będzie wysyłać żądanie i zwracać obiektSearchResults
. Utwórz adres URL żądania, łącząc niestandardowy identyfikator konfiguracji, zapytanie i informacje o punkcie końcowym. Dodaj klucz subskrypcji do nagłówkaOcp-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); ...
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; }
Wydrukuj odpowiedź JSON.
System.out.println("\nJSON Response:\n"); System.out.println(prettify(result.jsonResponse));
Uruchomisz program.