本文將為您介紹如何使用PHP SDK進行搜尋,並提供相關樣本以助您更好地理解。
配置環境變數
配置環境變數ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
重要
阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運,具體操作,請參見建立RAM使用者。
建立AccessKey ID和AccessKey Secret,請參考建立AccessKey。
如果您使用的是RAM使用者的AccessKey,請確保主帳號已授權AliyunServiceRoleForOpenSearch服務關聯角色,請參考OpenSearch-行業演算法版服務關聯角色,相關文檔參考訪問鑒權規則。
請不要將AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
Linux和macOS系統配置方法:
執行以下命令,其中,
<access_key_id>需替換為您RAM使用者的AccessKey ID,<access_key_secret>替換為您RAM使用者的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系統生效。
建立Config配置標頭檔
Config 頁面中的內容將作為後續的查詢推送文檔的標頭檔,其中包含AK、host、應用程式名稱、下拉名稱及 options 選項等重要參數資訊。
<?php
//引入標頭檔
require_once("../OpenSearch/Autoloader/Autoloader.php");
use OpenSearch\Client\OpenSearchClient;
// 使用者識別資訊
// 從環境變數讀取配置的AccessKey ID和AccessKey Secret,
// 運行程式碼範例前必須先配置環境變數,參考文檔上面“配置環境變數”步驟
// 替換對應的access key id
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
//替換對應的access secret
$secret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
//替換為對應地區api訪問地址,可參考應用控制台,基本資料中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);
// 執行個體化一個搜尋參數類
$params = new SearchParamsBuilder();
//設定config子句的start值
$params->setStart(0);
//設定config子句的hit值
$params->setHits(20);
// 指定一個應用用於搜尋
$params->setAppName('替換為應用程式名稱');
// 指定搜尋關鍵詞
$params->setQuery("name:'搜尋'");
// 指定返回的搜尋結果的格式為json
$params->setFormat("fulljson");
//添加排序欄位
$params->addSort('RANK', SearchParamsBuilder::SORT_DECREASE);
// 執行搜尋,擷取搜尋結果
$ret = $searchClient->execute($params->build());
// 將json類型字串解碼
print_r(json_decode($ret->result,true));
//列印調試資訊
echo $ret->traceInfo->tracer;