環境変数の設定
ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を設定します。
Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作へのアクセスに使用できます。Resource Access Management (RAM) ユーザーを使用して API 操作を呼び出すか、日常の O&M を実行することを推奨します。RAM ユーザーの使用方法の詳細については、「RAM ユーザーの作成」をご参照ください。
AccessKey ペアの作成方法の詳細については、「AccessKey ペアの作成」をご参照ください。
RAM ユーザーの AccessKey ペアを使用する場合は、Alibaba Cloud アカウントを使用して、必要な権限が AliyunServiceRoleForOpenSearch ロールに付与されていることを確認してください。詳細については、「AliyunServiceRoleForOpenSearch」および「アクセス権限付与ルール」をご参照ください。
プロジェクトコードなど、他人が容易にアクセスできる資料に AccessKey ペアを含めないことを推奨します。含めた場合、AccessKey ペアが漏洩し、アカウント内のリソースが安全でなくなる可能性があります。
Linux および macOS
次のコマンドを実行します。
<access_key_id>と<access_key_secret>を、使用する RAM ユーザーの AccessKey ID と AccessKey Secret に置き換えます。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 Secret に設定します。
Windows を再起動して、AccessKey ペアを有効にします。
依存関係の追加
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 ID と AccessKey Secret を取得します。
このコードを実行する前に、環境変数を設定する必要があります。詳細については、このトピックの「環境変数の設定」セクションをご参照ください。*/
AccessKeyId = System.Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
AccessKeySecret = System.Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
// 認証方式を指定します。デフォルト値は access_key です。sts の値は、RAM と Security Token Service (STS) に基づく認証を示します。
// 有効な値: sts および access_key。
Type = "access_key",
// RAM と STS に基づく認証を使用する場合は、security_token パラメーターを指定する必要があります。Alibaba Cloud の 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;
}
}
}
}詳細については、「検索リクエストの開始」をご参照ください。