Cette rubrique décrit la configuration de l'environnement et fournit des exemples de code du SDK PHP pour la recherche de documents de base.
Configurer les variables d'environnement
Configurez les variables d'environnement ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET.
La paire AccessKey d'un compte Alibaba Cloud permet d'accéder à toutes les opérations API. Nous vous recommandons d'utiliser un utilisateur Resource Access Management (RAM) pour appeler les opérations API ou effectuer les tâches d'exploitation et de maintenance courantes. Pour savoir comment utiliser un utilisateur RAM, consultez la rubrique Créer un utilisateur RAM.
Pour savoir comment créer une paire AccessKey, consultez la rubrique Créer une paire AccessKey.
Si vous utilisez la paire AccessKey d'un utilisateur RAM, assurez-vous que le rôle AliyunServiceRoleForOpenSearch dispose des autorisations requises via votre compte Alibaba Cloud. Pour plus d'informations, consultez les rubriques AliyunServiceRoleForOpenSearch et Règles d'autorisation d'accès.
Nous vous déconseillons d'inclure votre paire AccessKey dans des supports facilement accessibles à des tiers, tels que le code du projet. Dans le cas contraire, vos identifiants pourraient être divulgués et la sécurité des ressources de votre compte serait compromise.
-
Linux et macOS
Exécutez les commandes suivantes. Remplacez
<access_key_id>et<access_key_secret>par l'AccessKey ID et l'AccessKey Secret de l'utilisateur RAM utilisé.export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret> -
Windows
Créez un fichier de variables d'environnement, ajoutez-y les variables ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET, puis définissez-les avec votre AccessKey ID et votre AccessKey Secret.
Redémarrez Windows pour que la paire AccessKey prenne effet.
Créer le fichier d'en-tête Config
Le fichier Config sert de fichier d'en-tête pour les exemples ultérieurs de recherche et d'envoi de documents. Il contient les identifiants, l'endpoint, le nom de l'application et les options. Exemple :
<?php
// Import the header file.
require_once("../OpenSearch/Autoloader/Autoloader.php");
use OpenSearch\Client\OpenSearchClient;
// User credentials.
// Read the AccessKey ID and AccessKey secret from environment variables.
// Configure the environment variables before running the code example.
// Use the configured AccessKey ID.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
// Use the configured AccessKey secret.
$secret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
// Use the API endpoint for the region, as shown on the application Basic Information page.
$endPoint = '<region endPoint>';
// Use the application name.
$appName = '<app name>';
// Enable debug mode.
$options = array('debug' => true);
// Create the OpenSearchClient object.
$client = new OpenSearchClient($accessKeyId, $secret, $endPoint, $options);
Démonstration de toutes les fonctionnalités de recherche
Exemple :
<?php
header("Content-Type:text/html;charset=utf-8");
// Import the header file.
require_once("Config.inc.php");
use OpenSearch\Client\SearchClient;
use OpenSearch\Util\SearchParamsBuilder;
$searchClient = new SearchClient($client);
// Create the parameters object and specify its values.
$params = new SearchParamsBuilder();
$params->setStart(0);
$params->setHits(20);
// Set the application name.
$params->setAppName('your_app_name');
// Set the query.
$params->setQuery("name:'search'");
// Set the response format.
$params->setFormat("fulljson");
// Add sorting.
$params->addSort('id', SearchParamsBuilder::SORT_DECREASE);
$params->addSort('RANK', SearchParamsBuilder::SORT_DECREASE);
// Set the document filter.
$params->setFilter('id>0');
// Add the distinct clause.
$params->addDistinct(
array('key' => 'cate_id', 'distTimes' => 1, 'distCount' => 1, 'reserved' => 'false')
);
// Add a summary.
$params->addSummary(
array('summary_field' => 'name', 'summary_len' => 100, 'summary_ellipsis' => "...", 'summary_snippet' => 2, 'summary_element_prefix' => '<em>', 'summary_element_postfix' => '</em>')
);
//$params->addSummary(
// array('summary_field' => 'name', 'summary_len' => 200)
//);
// Set custom parameters.
//$params->setCustomParam('a', 'b');
//$params->setCustomParam('c', 'd');
//$params->setRouteValue('1');
// Set from_request_id for the associated search request.
$params->setCustomParam('from_request_id','159851481919726888064081');
// Add the aggregate clause.
$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)
// );
// Specify the first-rank expression.
$params->setFirstRankName('default');
// Specify the second-rank expression.
$params->setSecondRankName('default');
// Specify the fields to return.
$params->setFetchFields(array('id','name','phone','int_arr','literal_arr','float_arr','cate_id'));
// Add the raw_query parameter.
$params->setRawQuery("sample text");
// Execute the query and return information.
$ret = $searchClient->execute($params->build());
// Print the response.
print_r(json_decode($ret->result,true));
// Print debugging information.
echo $ret->traceInfo->tracer;