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 pemeliharaan 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 telah diberikan kepada peran AliyunServiceRoleForOpenSearch dengan 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 milik 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 dalam 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.
<?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);Implementasikan kueri gulir
Kode contoh berikut menunjukkan cara mengimplementasikan kueri gulir:
<?php
header("Content-Type:text/html;charset=utf-8");
// Impor file header.
require_once("Config.inc.php");
use OpenSearch\Client\SearchClient;
use OpenSearch\Util\SearchParamsBuilder;
$searchClient = new SearchClient($client);
// Buat objek SearchParamsBuilder dan tentukan parameter.
$params = new SearchParamsBuilder();
// Tentukan jumlah dokumen yang akan dikembalikan untuk setiap kueri gulir. Anda tidak perlu menentukan offset untuk hasil yang dikembalikan.
$params->setHits(1);
// Tentukan nama aplikasi.
$params->setAppName('Nama aplikasi');
// Tentukan kueri pencarian.
$params->setQuery("name: 'Search'");
// Tentukan format data hasil yang dikembalikan. Format yang didukung adalah JSON dan FULLJSON. Dalam contoh ini, format data diatur ke FULLJSON.
$params->setFormat("fulljson");
// Di OpenSearch SDK for PHP V3, kueri gulir hanya mendukung pengurutan berdasarkan satu bidang. Bidang tersebut harus bertipe INT. Kami menyarankan Anda mengonfigurasi pengurutan berdasarkan kunci utama. Ini mencegah pengambilan dokumen berulang yang disebabkan oleh pembaruan data selama kueri.
$params->addSort('id', SearchParamsBuilder::SORT_INCREASE);
// Tentukan kondisi filter.
$params->setFilter('id>0');
// Tentukan bidang yang akan dikembalikan.
$params->setFetchFields(array('id','name','phone','int_arr','literal_arr','float_arr','cate_id'));
// Tentukan periode validitas untuk ID gulir yang akan digunakan oleh kueri gulir berikutnya, dalam menit. Dalam contoh ini, nilainya diatur ke 3m. Anda tidak perlu menentukan ID gulir untuk kueri gulir pertama. Kueri gulir pertama mengembalikan ID gulir yang dapat digunakan oleh kueri gulir berikutnya.
$params->setScrollExpire('3m');
// Jalankan kueri dan kembalikan hasilnya.
$ret = $searchClient->execute($params->build())->result;
for($i=0;$i<json_decode($ret)->result->viewtotal;$i++){
// Gunakan ID gulir dari kueri gulir pertama sebagai parameter kueri.
$params->setScrollId(json_decode($ret)->result->scroll_id);
// Jalankan kueri lagi dan kembalikan hasilnya.
$ret = $searchClient->execute($params->build())->result;
// Tampilkan hasil yang dikembalikan.
print_r($ret.'<br/><br/>');
}