Konfigurasikan variabel lingkungan
Konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
Pasangan AccessKey dari akun Alibaba Cloud dapat digunakan untuk mengakses semua operasi API. Kami menyarankan Anda menggunakan Pengguna Resource Access Management (RAM) untuk memanggil operasi API atau melakukan O&M rutin. Untuk informasi tentang cara menggunakan Pengguna RAM, lihat Buat Pengguna RAM.
Untuk informasi tentang cara membuat pasangan AccessKey, lihat Buat Pasangan AccessKey.
Jika Anda menggunakan pasangan AccessKey dari Pengguna RAM, pastikan bahwa izin yang diperlukan diberikan kepada peran AliyunServiceRoleForOpenSearch menggunakan akun Alibaba Cloud Anda. Untuk informasi lebih lanjut, lihat AliyunServiceRoleForOpenSearch dan Aturan Otorisasi Akses.
Kami menyarankan agar Anda tidak menyertakan pasangan AccessKey Anda dalam materi yang mudah diakses oleh orang lain, seperti kode proyek. Jika tidak, pasangan AccessKey Anda mungkin bocor dan sumber daya di akun Anda menjadi tidak aman.
Linux dan macOS
Jalankan perintah berikut. Ganti
<access_key_id>dan<access_key_secret>dengan ID AccessKey dan Rahasia AccessKey dari Pengguna RAM yang Anda gunakan.export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>Windows
Buat file variabel lingkungan, tambahkan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET ke file tersebut, lalu atur variabel lingkungan ke ID AccessKey dan Rahasia AccessKey Anda.
Mulai ulang Windows agar pasangan AccessKey berlaku.
Buat file header yang berisi konfigurasi
Konfigurasi yang Anda tentukan dalam file header ini digunakan untuk mendorong dan menanyakan dokumen. Konfigurasi mencakup pasangan AccessKey, titik akhir API, nama aplikasi, nama model saran drop-down, dan opsi.
$secret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');<?php
// Impor file header.
require_once("../OpenSearch/Autoloader/Autoloader.php");
use OpenSearch\Client\OpenSearchClient;
// Tentukan pasangan AccessKey Anda.
// Dapatkan ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
// Anda harus mengonfigurasi variabel lingkungan sebelum menjalankan kode ini. Untuk informasi lebih lanjut, lihat bagian "Konfigurasikan variabel lingkungan" dari topik ini.
// Tentukan ID AccessKey.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
// Tentukan Rahasia AccessKey.
$secret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
// Tentukan titik akhir API OpenSearch di wilayah Anda. Anda bisa mendapatkan titik akhir pada halaman detail aplikasi di konsol OpenSearch.
$endPoint = '<region endPoint>';
// Tentukan nama aplikasi.
$appName = '<app name>';
// Tentukan nama model saran drop-down.
$suggestName = '<suggest name>';
// Aktifkan mode debugging.
$options = array('debug' => true);
// Buat objek OpenSearchClient.
$client = new OpenSearchClient($accessKeyId, $secret, $endPoint, $options);Dorong dokumen
Dalam kode berikut, 10 dokumen diunggah ke aplikasi OpenSearch.
<?php
header("Content-Type:text/html;charset=utf-8");
// Impor file header.
require_once("Config.inc.php");
use OpenSearch\Client\DocumentClient;
use OpenSearch\Client\SearchClient;
use OpenSearch\Util\SearchParamsBuilder;
// Tentukan tabel tempat Anda ingin mendorong dokumen.
$tableName = 'Tabel tempat Anda ingin mendorong dokumen';
// Buat objek DocumentClient.
$documentClient = new DocumentClient($client);
// Tambahkan dokumen yang akan didorong ke array.
$docs_to_upload = array();
for ($i = 0; $i < 10; $i++){
$item = array();
$item['cmd'] = 'ADD';
$item["fields"] = array(
"id" => $i + 1,
"name" => "Cari KFC".$i
);
$docs_to_upload[] = $item;
}
// Enkode dokumen.
$json = json_encode($docs_to_upload);
// Panggil metode push untuk mendorong dokumen.
$ret = $documentClient->push($json, $appName, $tableName);
// Hibernasi thread selama 10 detik. Jika Anda mendorong dokumen ke tabel utama aplikasi tingkat lanjut, 90% dokumen dapat disinkronkan dalam 10 detik dan 99% dokumen tersedia dalam 10 menit. Namun, ini tidak berlaku untuk pendorongan dokumen ke tabel sekunder.
sleep(10);
// Buat objek SearchClient.
$searchClient = new SearchClient($client);
// Buat objek SearchParamsBuilder.
$params = new SearchParamsBuilder();
// Tentukan parameter start dalam klausa config.
$params->setStart(0);
// Tentukan parameter hits dalam klausa config.
$params->setHits(20);
// Tentukan aplikasi tempat Anda ingin mengimplementasikan fitur pencarian.
$params->setAppName('Nama aplikasi');
// Tentukan kueri pencarian.
$params->setQuery("name: 'Cari'");
// Tentukan format data hasil yang dikembalikan. Dalam contoh ini, format data diatur ke FULLJSON.
$params->setFormat("fulljson");
// Tentukan bidang berdasarkan mana dokumen diurutkan.
$params->addSort('RANK', SearchParamsBuilder::SORT_DECREASE);
// Jalankan kueri dan kembalikan hasilnya.
$ret = $searchClient->execute($params->build());
// Dekode hasil yang dalam format JSON.
print_r(json_decode($ret->result,true));
// Tampilkan informasi debugging.
echo $ret->traceInfo->tracer;