クイック スタート: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
- Visual Studio のソリューション エクスプローラーでプロジェクトを右クリックし、メニューから [NuGet パッケージの管理] を選択します。
Azure リソースを作成する
次のいずれかの Azure リソースを作成して、Bing Custom Search API の使用を開始します。
Bing Custom Search リソース
- ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
- Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。
マルチサービス リソース
- ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
- 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。
アプリケーションを作成して初期化する
Visual Studio で、新しい C# コンソール アプリケーションを作成します。 次のパッケージをプロジェクトに追加します。
using System; using System.Linq; using Microsoft.Azure.CognitiveServices.Search.CustomSearch;
アプリケーションのメイン メソッドで、必要な API キーを使用して検索クライアントをインスタンス化します。
var client = new CustomSearchAPI(new ApiKeyServiceClientCredentials("YOUR-SUBSCRIPTION-KEY"));
検索要求を送信して応答を受信する
クライアントの
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;
SearchAsync()
メソッドがWebData
オブジェクトを返します。 このオブジェクトを使用して、検出されたWebPages
を反復処理します。 このコードは、最初の Web ページの結果を検索し、Web ページのName
とURL
を印刷します。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 サブスクリプション - 無料アカウントを作成します。
- 最新バージョンの Java Development Kit (JDK)。
- Gradle ビルド ツール、または別の依存関係マネージャー。
- Bing Custom Search インスタンス。 「クイック スタート:初めての Bing Custom Search インスタンスを作成する」で詳細を確認する。
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) | サンプル
前提条件
- Bing Custom Search インスタンス。 「クイック スタート:初めての Bing Custom Search インスタンスを作成する」で詳細を確認する。
- Python 2.x または 3.x
- Bing Custom Search SDK for Python
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
検索クライアントを作成して要求を送信する
対象のサブスクリプション キーとエンドポイントの変数を作成します。
subscription_key = 'your-subscription-key' endpoint = 'your-endpoint'
サブスクリプション キーを使用して、
CognitiveServicesCredentials
オブジェクトを使って、CustomSearchClient
のインスタンスを作成します。client = CustomSearchClient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
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..")