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

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

  1. 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;
    
  2. Crie uma classe com o nome CustomSrchJavae, 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";  
    ...
    
  3. 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;
        }
    }
    
  4. 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

  1. Crie uma função com o nome SearchWeb() que envia um pedido e devolve um SearchResults 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 ao Ocp-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);
    ...
    
  2. 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;
        }
    
  3. Imprima a resposta JSON.

    System.out.println("\nJSON Response:\n");
    System.out.println(prettify(result.jsonResponse));
    
  4. Executar o programa.

Passos seguintes