環境変数を構成する
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 を再起動します。
構成を含むヘッダーファイルを作成する
このヘッダーファイルで指定する構成は、ドキュメントのプッシュとクエリに使用されます。 構成には、AccessKey ペア、API エンドポイント、アプリケーション名、検索候補モデルの名前、およびオプションが含まれます。
<?php
// ヘッダーファイルをインポートします。
require_once("../OpenSearch/Autoloader/Autoloader.php");
use OpenSearch\Client\OpenSearchClient;
// AccessKey ペアを指定します。
// 環境変数から AccessKey ID と AccessKey シークレットを取得します。
// このコードを実行する前に、環境変数を構成する必要があります。 詳細については、このトピックの「環境変数を構成する」セクションを参照してください。
// Accesskey ID を指定します。
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
// AccessKey シークレットを指定します。
$secret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
// リージョン内の OpenSearch API のエンドポイントを指定します。 エンドポイントは、OpenSearch コンソールのアプリケーションの詳細ページで取得できます。
$endPoint = '<region endPoint>';
// アプリケーション名を指定します。
$appName = '<app name>';
// 検索候補モデルの名前を指定します。
$suggestName = '<suggest name>';
// デバッグモードを有効にします。
$options = array('debug' => true);
// OpenSearchClient オブジェクトを作成します。
$client = new OpenSearchClient($accessKeyId, $secret, $endPoint, $options);ドキュメントをプッシュする
ドキュメントを追加する
次のサンプルコードでは、10 個のドキュメントが OpenSearch アプリケーションにアップロードされます。
<?php
// ヘッダーファイルをインポートします。
require_once("Config.inc.php");
use OpenSearch\Client\DocumentClient;
// ドキュメントをプッシュするテーブルを指定します。
$tableName = 'ドキュメントをプッシュするテーブル';
// DocumentClient オブジェクトを作成します。
$documentClient = new DocumentClient($client);
// プッシュするドキュメントを配列に追加します。
$docsToUpload = array();
for ($i = 0; $i < 10; $i++){
$item = array();
$item['cmd'] = 'ADD';
$item["fields"] = array(
"id" => $i + 1,
"name" => "Search".$i
);
$docsToUpload[] = $item;
}
// プッシュするドキュメントを JSON 文字列にエンコードします。
$json = json_encode($docsToUpload);
// push メソッドを呼び出して、ドキュメントをプッシュします。
$ret = $documentClient->push($json, $appName, $tableName);ドキュメントを更新する
<?php
// ヘッダーファイルをインポートします。
require_once("Config.inc.php");
use OpenSearch\Client\DocumentClient;
// ドキュメントをプッシュするテーブルを指定します。
$tableName = 'ドキュメントをプッシュするテーブル';
// DocumentClient オブジェクトを作成します。
$documentClient = new DocumentClient($client);
// プッシュするドキュメントを配列に追加します。
$docsToUpload = array();
$item = array();
// UPDATE 操作は、Advanced エディションの OpenSearch アプリケーションのみでサポートされています。
$item['cmd'] = 'UPDATE';
$item["fields"] = array(
"id" => 1,
"name" => "OpenSearch"
);
$docsToUpload[] = $item;
// プッシュするドキュメントを JSON 文字列にエンコードします。
$json = json_encode($docsToUpload);
// push メソッドを呼び出して、ドキュメントをプッシュします。
$ret = $documentClient->push($json, $appName, $tableName);ドキュメントを削除する
<?php
// ヘッダーファイルをインポートします。
require_once("Config.inc.php");
use OpenSearch\Client\DocumentClient;
// ドキュメントをプッシュするテーブルを指定します。
$tableName = 'ドキュメントをプッシュするテーブル';
// DocumentClient オブジェクトを作成します。
$documentClient = new DocumentClient($client);
// プッシュするドキュメントを配列に追加します。
$docsToUpload = array();
$item = array();
$item['cmd'] = 'DELETE';
$item["fields"] = array(
"id" => 1, // 削除するドキュメントのプライマリキー ID を入力します。
);
$docsToUpload[] = $item;
// プッシュするドキュメントを JSON 文字列にエンコードします。
$json = json_encode($docsToUpload);
// push メソッドを呼び出して、ドキュメントをプッシュします。
$ret = $documentClient->push($json, $appName, $tableName);