すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:基本検索

最終更新日:Nov 09, 2025

環境変数の設定

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

    1. 環境変数ファイルを作成し、ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数をファイルに追加してから、環境変数を AccessKey ID と AccessKey Secret に設定します。

    2. 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;
            }
        }
    }
}
説明

詳細については、「検索リクエストの開始」をご参照ください。