Início Rápido: Chamar o ponto final da Pesquisa Personalizada do Bing com Java
Aviso
A 30 de outubro de 2020, as APIs de Pesquisa do Bing passaram dos serviços de IA do Azure para os Serviços Pesquisa do Bing. Esta documentação é fornecida apenas para referência. Para obter documentação atualizada, veja a documentação da API de pesquisa do Bing. Para obter instruções sobre como criar novos recursos do Azure para a pesquisa do Bing, veja Criar um recurso de Pesquisa do Bing através do Azure Marketplace.
Utilize este início rápido para saber como pedir resultados de pesquisa à sua instância de Pesquisa Personalizada do Bing. Embora esta aplicação esteja escrita em Java, a API de Pesquisa Personalizada do Bing é um serviço Web RESTful compatível com a maioria das linguagens de programação. O código fonte para este exemplo está disponível no GitHub.
Pré-requisitos
Uma instância de Pesquisa Personalizada do Bing. Para obter mais informações, veja Início Rápido: Criar a sua primeira instância de Pesquisa Personalizada do Bing.
Criar um recurso do Azure
Comece a utilizar a API de Pesquisa Personalizada do Bing ao criar um dos seguintes recursos do Azure.
Recurso de Pesquisa Personalizada do Bing
- Disponível através do portal do Azure até eliminar o recurso.
- Utilize o escalão de preço gratuito para experimentar o serviço e atualize mais tarde para um escalão pago para produção.
Recurso multi-serviço
- Disponível através do portal do Azure até eliminar o recurso.
- Utilize a mesma chave e ponto final para as suas aplicações, em vários serviços de IA do Azure.
Criar e inicializar a aplicação
Crie um novo projeto Java no seu IDE ou editor favorito e importe as seguintes bibliotecas:
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;
Crie uma classe com o nome
CustomSrchJava
e, em seguida, crie variáveis para a chave de subscrição, o ponto final de pesquisa personalizado e o ID de configuração personalizada da instância de pesquisa. Pode utilizar o ponto final global no seguinte código ou utilizar o ponto final de subdomínio personalizado apresentado no portal do Azure do recurso.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"; ...
Crie outra classe com o nome
SearchResults
para conter a resposta da sua instância de Pesquisa Personalizada do Bing.class SearchResults { HashMap<String, String> relevantHeaders; String jsonResponse; SearchResults(HashMap<String, String> headers, String json) { relevantHeaders = headers; jsonResponse = json; } }
Crie uma função com o nome
prettify()
para formatar a resposta JSON a partir da API de Pesquisa Personalizada do 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); }
Enviar e receber um pedido de pesquisa
Crie uma função com o nome
SearchWeb()
que envia um pedido e devolve umSearchResults
objeto. Crie o URL do pedido ao combinar o ID de configuração personalizado, a consulta e as informações do ponto final. Adicione a chave de subscrição aoOcp-Apim-Subscription-Key
cabeçalho.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); ...
Crie um fluxo e armazene a resposta JSON num
SearchResults
objeto.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; }
Imprima a resposta JSON.
System.out.println("\nJSON Response:\n"); System.out.println(prettify(result.jsonResponse));
Executar o programa.