環境変数の設定
ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を設定します。
Alibaba Cloud アカウントの AccessKey ペアを使用して、すべての API 操作にアクセスできます。API 操作の呼び出しや日常的な O&M の実行には、Resource Access Management (RAM) ユーザーを使用することをお勧めします。RAM ユーザーの使用方法については、RAM ユーザーの作成 を参照してください。
AccessKey ペアの作成方法については、AccessKey ペアの作成 を参照してください。
RAM ユーザーの AccessKey ペアを使用する場合は、Alibaba Cloud アカウントを使用して、AliyunServiceRoleForOpenSearch ロールに必要な権限が付与されていることを確認してください。詳細については、AliyunServiceRoleForOpenSearch および アクセス認証ルール を参照してください。
プロジェクトコードなど、他の人が簡単にアクセスできる資料に AccessKey ペアを含めないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のリソースが安全でなくなる可能性があります。
Linux および macOS
次のコマンドを実行します。
<access_key_id>
および<access_key_secret>
を、使用する RAM ユーザーの AccessKey ID と AccessKey シークレットに置き換えます。export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>
Windows
環境変数ファイルを作成し、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数をファイルに追加し、環境変数を AccessKey ID と AccessKey シークレットに設定します。
AccessKey ペアを有効にするには、Windows を再起動します。
依存関係の追加
依存関係パッケージは https://www.nuget.org/packages からダウンロードします。
dotnet add package AlibabaCloud.TeaUtil --version 0.1.5
dotnet add package AlibabaCloud.OpenSearchUtil --version 1.0.2
dotnet add package Aliyun.Credentials --version 1.2.1
dotnet add package Tea --version 0.4.0
サンプルコード
次のサンプルコードは、C# 用 SDK を使用してドキュメントを検索する方法を示しています。
using System;
using System.Collections.Generic;
using AlibabaCloud.TeaUtil.Models;
using Tea;
namespace ConsoleApp
{
internal class Program
{
public static Dictionary<string, object> searchDoc(Client opensearchClient, string appName,
Dictionary<string, object> queryParams, Dictionary<string, string> header, RuntimeOptions runTime)
{
string pathName = "/v3/openapi/apps/" + appName + "/search";
try
{
return opensearchClient._request("GET", pathName, queryParams, header, null, runTime);
}
catch (TeaException e)
{
Console.WriteLine(e);
throw;
}
}
private static void Main(string[] args)
{
var runtime = new RuntimeOptions
{
ConnectTimeout = 5000,
ReadTimeout = 10000,
MaxAttempts = 0,
Autoretry = false,
IgnoreSSL = false,
MaxIdleConns = 50
};
var config = new Config
{
// OpenSearch API のエンドポイントを指定します。エンドポイントは OpenSearch コンソールから取得できます。
Endpoint = "opensearch-cn-hangzhou.aliyuncs.com",
// リクエストプロトコルを指定します。有効な値:HTTPS および HTTP。
Protocol = "HTTPS",
// AccessKey ペアを指定します。
// 環境変数から AccessKey ID と AccessKey シークレットを取得します。
// このコードを実行する前に、環境変数を設定する必要があります。詳細については、このトピックの「環境変数の設定」セクションを参照してください。
AccessKeyId = System.Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
AccessKeySecret = System.Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
// 認証方法を指定します。デフォルト値:access_key。sts の値は、Resource Access Management (RAM) と Security Token Service (STS) に基づく認証を示します。
// 有効な値:sts および access_key。
Type = "access_key",
// RAM と STS に基づく認証を使用する場合は、SecurityToken パラメーターを指定する必要があります。Alibaba Cloud RAM の AssumeRole オペレーションを呼び出して、STS トークンを取得できます。
SecurityToken = "",
};
// OpenSearch クライアントインスタンスを作成します。
var openSearch = new Client(config);
// データをクエリするアプリケーションの名前を指定します。
var appName = "appName";
// HTTP ヘッダーをカスタマイズします。
var header = new Dictionary<string, string>();
// クエリリクエストを作成します。
// config 句の format パラメーターの有効な値は、json および fulljson です。
var docQuery = new Dictionary<string, object>
{
{
"query",
"config=start:0,hit:10,format:fulljson&&query=(default:\"Search\" AND default:\"OpenSearch\") OR (default:\"Search engine\" AND default:\"Policy\")"
},
{"second_rank_name", "att"}, {"first_rank_name", "sdfrsdfs"}, {"fetch", "qp:profile"},
{"fetch_fields", "title"}
};
try
{
Dictionary<string, object> ops = searchDoc(openSearch, appName, docQuery, header, runtime);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
}
詳細については、検索リクエストの開始 を参照してください。