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

OpenSearch:すべての検索機能のデモ

最終更新日:Mar 19, 2026

このトピックでは、PHP SDK を使用した基本的なドキュメント検索の環境を構成する方法と、サンプルコードについて説明します。

環境変数の構成

ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を構成します。

重要
  • Alibaba Cloud アカウント (root ユーザー) の 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 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_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を追加し、それらの環境変数をご利用の AccessKey ID と AccessKey Secret に設定します。

    2. AccessKey ペアを有効にするには、Windows を再起動します。

構成を含むヘッダーファイルの作成

この構成ファイルは、その後のドキュメント検索およびプッシュ操作のヘッダーとして使用されます。AccessKey、ホスト、アプリケーション名、オプションなどの重要なパラメーターが含まれています。次のコードは例を示しています。

<?php
// ヘッダーファイルをインポートします。
require_once("../OpenSearch/Autoloader/Autoloader.php");
use OpenSearch\Client\OpenSearchClient;
// ユーザー識別情報。
// 構成された AccessKey ID と AccessKey Secret を環境変数から読み取ります。
// コード例を実行する前に、環境変数を構成する必要があります。詳細については、「環境変数の構成」セクションをご参照ください。
// 対応する AccessKey ID に置き換えます。
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
// 対応する AccessKey Secret に置き換えます。
$secret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
// 対応するリージョンの API エンドポイントに置き換えます。エンドポイントは、コンソール内のアプリケーションの基本情報ページで確認できます。
$endPoint = '<region endPoint>';
// アプリケーション名に置き換えます。
$appName = '<app name>';
// デバッグモードを有効にします。
$options = array('debug' => true);
// OpenSearchClient クライアントオブジェクトを作成します。
$client = new OpenSearchClient($accessKeyId, $secret, $endPoint, $options);

検索機能のデモ (完全版)

次に例を示します。

<?php
header("Content-Type:text/html;charset=utf-8");
// ヘッダーファイルをインポートします。
require_once("Config.inc.php");
use OpenSearch\Client\SearchClient;
use OpenSearch\Util\SearchParamsBuilder;
$searchClient = new SearchClient($client);
// SearchParamsBuilder オブジェクトを作成し、対応するパラメーターを指定します。
$params = new SearchParamsBuilder();
$params->setStart(0);
$params->setHits(20);
// アプリケーション名を設定します。
$params->setAppName('Replace with your application name');
// クエリを設定します。
$params->setQuery("name:'search'");
// 戻り形式を設定します。
$params->setFormat("fulljson");
// ソートポリシーを追加します。
$params->addSort('id', SearchParamsBuilder::SORT_DECREASE);
$params->addSort('RANK', SearchParamsBuilder::SORT_DECREASE);
// ドキュメントフィルター条件を設定します。
$params->setFilter('id>0');
// distinct 句を追加します。
$params->addDistinct(
    array('key' => 'cate_id', 'distTimes' => 1, 'distCount' => 1, 'reserved' => 'false')
);
// まとめを追加します。
$params->addSummary(
    array('summary_field' => 'name', 'summary_len' => 100, 'summary_ellipsis' => "...", 'summary_snippet' => 2, 'summary_element_prefix' => '', 'summary_element_postfix' => '')
);
//$params->addSummary(
//    array('summary_field' => 'name', 'summary_len' => 200)
//);
// カスタムパラメーターを設定します。
//$params->setCustomParam('a', 'b');
//$params->setCustomParam('c', 'd');
//$params->setRouteValue('1');

// 関連する検索リクエストの from_request_id を設定します。
$params->setCustomParam('from_request_id','159851481919726888064081');


// 集計句を追加します。
 $params->addAggregate(
     array('groupKey' => 'cate_id', 'aggFun' => 'count()', 'range' => '1', 'aggSamplerThresHold' => 1, 'aggSamplerStep' => 10, 'maxGroup' => 10)
 );
// $params->addAggregate(
//     array('groupKey' => 'cate_id', 'aggFun' => 'count()', 'range' => '1', 'aggFilter' => 'id>1', 'aggSamplerThresHold' => 1, 'aggSamplerStep' => 10, 'maxGroup' => 10)
// );
// 基本ソート式を指定します。
$params->setFirstRankName('default');
// 高度ソート式を指定します。
$params->setSecondRankName('default');
// 返却するフィールドを設定します。
$params->setFetchFields(array('id','name','phone','int_arr','literal_arr','float_arr','cate_id'));
// raw_query パラメーターを追加します。
$params->setRawQuery("string");
// クエリを実行し、情報を返却します。
$ret = $searchClient->execute($params->build());
// 返却された情報の内容を出力します。
print_r(json_decode($ret->result,true));
// デバッグ情報を出力します。
echo $ret->traceInfo->tracer;