クイック スタート:Bing Custom Search クライアント ライブラリを使用する

警告

2020 年 10 月 30 日に、Bing Search API は Azure AI サービスから Bing Search サービスに移行されました。 このドキュメントは、参考用としてのみ提供されています。 更新されたドキュメントについては、Bing search API のドキュメントを参照してください。 Bing 検索用の新しい Azure リソースを作成する手順については、「Azure Marketplace から Bing Search リソースを作成する」を参照してください。

C# 用 Bing Custom Search クライアント ライブラリの使用を開始します。 以下の手順に従って、パッケージをインストールし、基本タスクのコード例を試してみましょう。 Bing Custom Search API を使用すると、関心のあるトピックに合わせてカスタマイズした、広告なしの検索エクスペリエンスを作成できます。 このサンプルのソース コードは、GitHub にあります。

C# 用 Bing Custom Search クライアント ライブラリを使用して、次のことを行います。

  • Web で Bing Custom Search インスタンスの検索結果を探します。

リファレンスのドキュメント | ライブラリのソース コード | パッケージ (NuGet) | サンプル

前提条件

  • Bing Custom Search インスタンス。 「クイック スタート:初めての Bing Custom Search インスタンスを作成する」で詳細を確認する。
  • Microsoft .NET Core
  • Visual Studio 2017 またはそれ以降の任意のエディション
  • Linux/macOS を使用している場合、このアプリケーションは Mono を使用して実行できます。
  • Bing Custom Search の NuGet パッケージ
    • Visual Studio のソリューション エクスプローラーでプロジェクトを右クリックし、メニューから [NuGet パッケージの管理] を選択します。 Microsoft.Azure.CognitiveServices.Search.CustomSearch パッケージをインストールします。 NuGet Custom Search パッケージをインストールすると、次のアセンブリもインストールされます。
      • Microsoft.Rest.ClientRuntime
      • Microsoft.Rest.ClientRuntime.Azure
      • Newtonsoft.Json

Azure リソースを作成する

次のいずれかの Azure リソースを作成して、Bing Custom Search API の使用を開始します。

Bing Custom Search リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。

マルチサービス リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。

アプリケーションを作成して初期化する

  1. Visual Studio で、新しい C# コンソール アプリケーションを作成します。 次のパッケージをプロジェクトに追加します。

    using System;
    using System.Linq;
    using Microsoft.Azure.CognitiveServices.Search.CustomSearch;
    
  2. アプリケーションのメイン メソッドで、必要な API キーを使用して検索クライアントをインスタンス化します。

    var client = new CustomSearchAPI(new ApiKeyServiceClientCredentials("YOUR-SUBSCRIPTION-KEY"));
    

検索要求を送信して応答を受信する

  1. クライアントの SearchAsync() メソッドを使用して検索クエリを送信し、応答を保存します。 YOUR-CUSTOM-CONFIG-ID を自分のインスタンスの構成の ID で置き換えます (この ID は Bing Custom Search ポータルにあります)。 この例では、"Xbox" を検索します。

    // This will look up a single query (Xbox).
    var webData = client.CustomInstance.SearchAsync(query: "Xbox", customConfig: Int32.Parse("YOUR-CUSTOM-CONFIG-ID")).Result;
    
  2. SearchAsync() メソッドが WebData オブジェクトを返します。 このオブジェクトを使用して、検出された WebPages を反復処理します。 このコードは、最初の Web ページの結果を検索し、Web ページの NameURL を印刷します。

    if (webData?.WebPages?.Value?.Count > 0)
    {
        // find the first web page
        var firstWebPagesResult = webData.WebPages.Value.FirstOrDefault();
    
        if (firstWebPagesResult != null)
        {
            Console.WriteLine("Number of webpage results {0}", webData.WebPages.Value.Count);
            Console.WriteLine("First web page name: {0} ", firstWebPagesResult.Name);
            Console.WriteLine("First web page URL: {0} ", firstWebPagesResult.Url);
        }
        else
        {
            Console.WriteLine("Couldn't find web results!");
        }
    }
    else
    {
        Console.WriteLine("Didn't see any Web data..");
    }
    

次のステップ

Java 用 Bing Custom Search クライアント ライブラリの使用を開始します。 以下の手順に従って、パッケージをインストールし、基本タスクのコード例を試してみましょう。 Bing Custom Search API を使用すると、関心のあるトピックに合わせてカスタマイズした、広告なしの検索エクスペリエンスを作成できます。 このサンプルのソース コードは、GitHub にあります。

Java 用 Bing Custom Search クライアント ライブラリを使用して、次のことを行います。

  • Web で Bing Custom Search インスタンスの検索結果を探します。

リファレンス ドキュメント | ライブラリ ソース コード | 成果物 (Maven) | サンプル

前提条件

Azure リソースを作成する

次のいずれかの Azure リソースを作成して、Bing Custom Search API の使用を開始します。

Bing Custom Search リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。

マルチサービス リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。

リソースからキーを取得した後、AZURE_BING_CUSTOM_SEARCH_API_KEY という名前のキーの環境変数を作成します。

新しい Gradle プロジェクトを作成する

ヒント

Gradle を使用していない場合、クライアント ライブラリとその他の依存関係マネージャーの詳細については、Maven Central Repository を参照してください。

コンソール ウィンドウ (cmd、PowerShell、Bash など) で、ご利用のアプリ用に新しいディレクトリを作成し、そこに移動します。

mkdir myapp && cd myapp

作業ディレクトリから gradle init コマンドを実行します。 次のコマンドでは、アプリケーションを構成するために実行時に使用される build.gradle.kts ファイルを含む、Gradle 用の重要なビルド ファイルが作成されます。

gradle init --type basic

DSL を選択するよう求められたら、Kotlin を選択します。

クライアント ライブラリをインストールする

build.gradle.kts を検索し、任意の IDE またはテキスト エディターで開きます。 その後、次のビルド構成をコピーします。 クライアント ライブラリは dependencies の下に格納してください。

plugins {
    java
    application
}
application {
    mainClassName = "main.java.BingCustomSearchSample"
}
repositories {
    mavenCentral()
}
dependencies {
    compile("org.slf4j:slf4j-simple:1.7.25")
    compile("com.microsoft.azure.cognitiveservices:azure-cognitiveservices-customsearch:1.0.2")
}

サンプル アプリ用のフォルダーを作成します。 作業ディレクトリから、次のコマンドを実行します。

mkdir src/main/java

新しいフォルダーに移動し、BingCustomSearchSample.java という名前のファイルを作成します。 それを開き、次の import ステートメントを追加します。

package main.java;

import com.microsoft.azure.cognitiveservices.search.customsearch.BingCustomSearchAPI;
import com.microsoft.azure.cognitiveservices.search.customsearch.BingCustomSearchManager;
import com.microsoft.azure.cognitiveservices.search.customsearch.models.SearchResponse;
import com.microsoft.azure.cognitiveservices.search.customsearch.models.WebPage;

BingCustomSearchSample という名前のクラスを作成します

public class BingCustomSearchSample {
}

そのクラスに、main メソッドと、リソースのキーに使用する変数を作成します。 アプリケーションを起動した後で環境変数を作成した場合、変数にアクセスするには、それを実行しているエディター、IDE、またはシェルを閉じて再度開きます。 これらのメソッドは後で定義します。

public static void main(String[] args) {
    try {

        // Set the BING_CUSTOM_SEARCH_SUBSCRIPTION_KEY and AZURE_BING_SAMPLES_CUSTOM_CONFIG_ID environment variables, 
        // then reopen your command prompt or IDE. If not, you may get an API key not found exception.
        final String subscriptionKey = System.getenv("BING_CUSTOM_SEARCH_SUBSCRIPTION_KEY");
        // If you do not have a customConfigId, you can also use 1 as your value when setting your environment variable.
        final String customConfigId = System.getenv("AZURE_BING_SAMPLES_CUSTOM_CONFIG_ID");

        BingCustomSearchAPI client = BingCustomSearchManager.authenticate(subscriptionKey);

        runSample(client, customConfigId);
    } catch (Exception e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
}

オブジェクト モデル

Bing Custom Search クライアントは、BingCustomSearchManager オブジェクトの authenticate() メソッドから作成される BingCustomSearchAPI オブジェクトです。 クライアントの BingCustomInstances.search() メソッドを使用して、検索要求を送信できます。

API の応答は、検索クエリについての情報と検索結果が含まれる SearchResponse オブジェクトです。

コード例

次のコード スニペットでは、Java 用 Bing Custom Search クライアント ライブラリを使用して以下のタスクを実行する方法を示します。

クライアントを認証する

main メソッドには、キーを取得してその authenticate() を呼び出す BingCustomSearchManager オブジェクトが含まれる必要があります。

BingCustomSearchAPI client = BingCustomSearchManager.authenticate(subscriptionKey);

カスタム検索インスタンスから検索結果を取得する

クライアントの BingCustomInstances.search() 関数を使用して、検索クエリをカスタム インスタンスに送信します。 withCustomConfig をカスタム構成 ID に設定します。既定値は 1 です。 API から応答を取得した後、検索結果が見つかったかどうかを確認します。 その場合は、応答の webPages().value().get() 関数を呼び出して最初の検索結果を取得し、結果の名前と URL を出力します。

public static boolean runSample(BingCustomSearchAPI client, String customConfigId) {
    try {

        // This will search for "Xbox" using Bing Custom Search 
        //and print out name and url for the first web page in the results list

        System.out.println("Searching for Query: \"Xbox\"");
        SearchResponse webData = client.bingCustomInstances().search()
            .withCustomConfig(customConfigId != null ? Long.valueOf(customConfigId) : 0)
            .withQuery("Xbox")
            .withMarket("en-us")
            .execute();

        if (webData != null && webData.webPages() != null && webData.webPages().value().size() > 0)
        {
            // find the first web page
            WebPage firstWebPagesResult = webData.webPages().value().get(0);

            if (firstWebPagesResult != null) {
                System.out.println(String.format("Webpage Results#%d", webData.webPages().value().size()));
                System.out.println(String.format("First web page name: %s ", firstWebPagesResult.name()));
                System.out.println(String.format("First web page URL: %s ", firstWebPagesResult.url()));
            } else {
                System.out.println("Couldn't find web results!");
            }
        } else {
            System.out.println("Didn't see any Web data..");
        }

        return true;
    } catch (Exception f) {
        System.out.println(f.getMessage());
        f.printStackTrace();
    }
    return false;
}

アプリケーションの実行

プロジェクトのメイン ディレクトリから次のコマンドを使用して、アプリをビルドします。

gradle build

run ゴールを使用してアプリケーションを実行します。

gradle run

リソースをクリーンアップする

Azure AI サービス サブスクリプションをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除することができます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。

次のステップ

Python 用 Bing Custom Search クライアント ライブラリの使用を開始します。 以下の手順に従って、パッケージをインストールし、基本タスクのコード例を試してみましょう。 Bing Custom Search API を使用すると、関心のあるトピックに合わせてカスタマイズされた、広告なしの検索エクスペリエンスを作成できます。このサンプルのソース コードは、GitHub にあります。

Python 用 Bing Custom Search クライアント ライブラリを使用して、次のことを行います。

  • Web で Bing Custom Search インスタンスの検索結果を探します。

リファレンス ドキュメント | ライブラリのソース コード | パッケージ (PyPi) | サンプル

前提条件

Azure リソースを作成する

次のいずれかの Azure リソースを作成して、Bing Custom Search API の使用を開始します。

Bing Custom Search リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。

マルチサービス リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。

Python クライアント ライブラリをインストールする

次のコマンドを使用して、Bing Custom Search クライアント ライブラリをインストールします。

python -m pip install azure-cognitiveservices-search-customsearch

新しいアプリケーションを作成する

好みのエディターまたは IDE で新しい Python ファイルを作成し、次の import を追加します。

from azure.cognitiveservices.search.customsearch import CustomSearchClient
from msrest.authentication import CognitiveServicesCredentials

検索クライアントを作成して要求を送信する

  1. 対象のサブスクリプション キーとエンドポイントの変数を作成します。

    subscription_key = 'your-subscription-key'
    endpoint = 'your-endpoint'
    
  2. サブスクリプション キーを使用して、CognitiveServicesCredentials オブジェクトを使って、CustomSearchClient のインスタンスを作成します。

    client = CustomSearchClient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
    
  3. client.custom_instance.search() を含む検索要求を送信します。 検索語句を query パラメーターに追加し、検索インスタンスを使用するためにカスタム構成 ID に custom_config を設定します。 ID を Bing Custom Search ポータルから取得するには、[運用] タブをクリックします。

    web_data = client.custom_instance.search(query="xbox", custom_config="your-configuration-id")
    

検索結果を表示する

任意の Web ページの検索結果が見つかった場合は、1 つ目を取得し、その名前、URL、および見つかった Web ページの合計を印刷します。

if web_data.web_pages.value:
    first_web_result = web_data.web_pages.value[0]
    print("Web Pages result count: {}".format(len(web_data.web_pages.value)))
    print("First Web Page name: {}".format(first_web_result.name))
    print("First Web Page url: {}".format(first_web_result.url))
else:
    print("Didn't see any web data..")

次のステップ