Rychlý start: Volání koncového bodu vlastního vyhledávání Bingu pomocí Javy
Upozornění
30. října 2020 se rozhraní API Vyhledávání Bingu přesunula ze služeb Azure AI na Vyhledávání Bingu Services. Tato dokumentace je k dispozici pouze pro referenci. Aktualizovanou dokumentaci najdete v dokumentaci k rozhraní API bingu pro vyhledávání. Pokyny k vytváření nových prostředků Azure pro vyhledávání Bingem najdete v tématu Vytvoření prostředku Vyhledávání Bingu prostřednictvím Azure Marketplace.
V tomto rychlém startu se dozvíte, jak si vyžádat výsledky hledání z instance vlastního vyhledávání Bingu. I když je tato aplikace napsaná v Javě, rozhraní API vlastního vyhledávání Bingu je webová služba RESTful kompatibilní s většinou programovacích jazyků. Zdrojový kód pro tuto ukázku je k dispozici na GitHubu.
Požadavky
Instance vlastního vyhledávání Bingu. Další informace najdete v tématu Rychlý start: Vytvoření první instance vlastního vyhledávání Bingu.
Nejnovější sada Java Development Kit.
Vytvoření prostředku Azure
Začněte používat rozhraní API pro vlastní vyhledávání Bingu vytvořením jednoho z následujících prostředků Azure.
Prostředek vlastního vyhledávání Bingu
- Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
- K vyzkoušení služby použijte bezplatnou cenovou úroveň a později upgradujte na placenou úroveň pro produkční prostředí.
Prostředek s více službami
- Dostupné prostřednictvím Azure Portal, dokud prostředek neodstraníte.
- Pro aplikace používejte stejný klíč a koncový bod napříč několika službami Azure AI.
Vytvoření a inicializace aplikace
Ve svém oblíbeném integrovaném vývojovém prostředí nebo editoru vytvořte nový projekt Java a naimportujte následující knihovny:
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;
Vytvořte třídu s názvem
CustomSrchJava
a pak vytvořte proměnné pro klíč předplatného, vlastní koncový bod vyhledávání a ID vlastní konfigurace instance vyhledávání. Globální koncový bod můžete použít v následujícím kódu nebo vlastní koncový bod subdomény zobrazený v Azure Portal pro váš prostředek.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"; ...
Vytvořte další třídu s názvem,
SearchResults
která bude obsahovat odpověď z vaší instance vlastního vyhledávání Bingu.class SearchResults { HashMap<String, String> relevantHeaders; String jsonResponse; SearchResults(HashMap<String, String> headers, String json) { relevantHeaders = headers; jsonResponse = json; } }
Vytvořte funkci s názvem pro
prettify()
formátování odpovědi JSON z rozhraní API pro vlastní vyhledávání Bingu.// 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); }
Odeslání a příjem žádosti o hledání
Vytvořte funkci s názvem
SearchWeb()
, která odešle požadavek a vrátíSearchResults
objekt. Vytvořte adresu URL požadavku kombinací id vlastní konfigurace, dotazu a informací o koncovém bodu. Přidejte klíč předplatného doOcp-Apim-Subscription-Key
záhlaví.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); ...
Vytvořte datový proud a uložte odpověď JSON do objektu
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; }
Vytiskněte odpověď JSON.
System.out.println("\nJSON Response:\n"); System.out.println(prettify(result.jsonResponse));
Spustíte program.