All Products
Search
Document Center

OpenSearch:Demo untuk semua fitur pencarian

Last Updated:Mar 19, 2026

Topik ini menjelaskan cara mengonfigurasi lingkungan untuk pencarian dokumen dasar menggunakan kit pengembangan perangkat lunak (SDK) PHP dan menyediakan contoh kode.

Konfigurasikan variabel lingkungan

Konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.

Penting
  • 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 izin yang diperlukan telah diberikan ke role AliyunServiceRoleForOpenSearch melalui Akun Alibaba Cloud Anda. Untuk informasi selengkapnya, lihat AliyunServiceRoleForOpenSearch dan Aturan otorisasi akses.

  • Kami menyarankan agar Anda tidak menyertakan pasangan AccessKey dalam materi yang mudah diakses orang lain, seperti kode proyek. Jika tidak, pasangan AccessKey Anda berisiko bocor dan sumber daya dalam 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

    1. Buat file variabel lingkungan, tambahkan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET ke dalam file tersebut, lalu atur nilainya sesuai dengan ID AccessKey dan Rahasia AccessKey Anda.

    2. Mulai ulang Windows agar pasangan AccessKey berlaku.

Buat file header yang berisi konfigurasi

File konfigurasi ini digunakan sebagai header untuk operasi pencarian dan dorong dokumen selanjutnya. File ini berisi parameter penting, seperti AccessKey, host, nama aplikasi, dan opsi. Kode berikut memberikan contohnya:

<?php
// Impor file header.
require_once("../OpenSearch/Autoloader/Autoloader.php");
use OpenSearch\Client\OpenSearchClient;
// Informasi identifikasi pengguna.
// Baca ID AccessKey dan Rahasia AccessKey yang telah dikonfigurasi dari variabel lingkungan.
// Sebelum menjalankan contoh kode ini, Anda harus mengonfigurasi variabel lingkungan terlebih dahulu. Untuk informasi selengkapnya, lihat bagian "Konfigurasikan variabel lingkungan".
// Ganti dengan ID AccessKey yang sesuai.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
// Ganti dengan Rahasia AccessKey yang sesuai.
$secret = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
// Ganti dengan titik akhir API wilayah yang sesuai. Anda dapat melihat titik akhir tersebut pada halaman Informasi Dasar aplikasi di Konsol.
$endPoint = '<region endPoint>';
// Ganti dengan nama aplikasi.
$appName = '<app name>';
// Aktifkan mode debug.
$options = array('debug' => true);
// Buat objek klien OpenSearchClient.
$client = new OpenSearchClient($accessKeyId, $secret, $endPoint, $options);

Demo fitur pencarian (Full)

Berikut adalah contohnya:

<?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 yang sesuai.
$params = new SearchParamsBuilder();
$params->setStart(0);
$params->setHits(20);
// Atur nama aplikasi.
$params->setAppName('Ganti dengan nama aplikasi Anda');
// Atur kueri.
$params->setQuery("name:'search'");
// Atur format respons.
$params->setFormat("fulljson");
// Tambahkan kebijakan pengurutan.
$params->addSort('id', SearchParamsBuilder::SORT_DECREASE);
$params->addSort('RANK', SearchParamsBuilder::SORT_DECREASE);
// Atur kondisi filter dokumen.
$params->setFilter('id>0');
// Tambahkan klausa distinct.
$params->addDistinct(
    array('key' => 'cate_id', 'distTimes' => 1, 'distCount' => 1, 'reserved' => 'false')
);
// Tambahkan ringkasan.
$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)
//);
// Atur parameter kustom.
//$params->setCustomParam('a', 'b');
//$params->setCustomParam('c', 'd');
//$params->setRouteValue('1');

// Atur from_request_id dari permintaan pencarian terkait.
$params->setCustomParam('from_request_id','159851481919726888064081');


// Tambahkan klausa agregasi.
 $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)
// );
// Tentukan ekspresi pengurutan kasar.
$params->setFirstRankName('default');
// Tentukan ekspresi penyortiran halus.
$params->setSecondRankName('default');
// Atur bidang yang akan dikembalikan.
$params->setFetchFields(array('id','name','phone','int_arr','literal_arr','float_arr','cate_id'));
// Tambahkan parameter raw_query.
$params->setRawQuery("string");
// Jalankan kueri dan kembalikan informasi.
$ret = $searchClient->execute($params->build());
// Cetak konten informasi yang dikembalikan.
print_r(json_decode($ret->result,true));
// Cetak informasi debug.
echo $ret->traceInfo->tracer;