全部产品
Search
文档中心

Object Storage Service:AISearch melalui OSS SDK untuk PHP 2.0

更新时间:Nov 09, 2025

Gunakan AISearch untuk menemukan objek secara cepat dari sejumlah besar objek berdasarkan kondisi seperti konten semantik, metadata OSS, metadata multimedia, ETags, tag, dan metadata kustom guna meningkatkan efisiensi. Topik ini menjelaskan cara menggunakan OSS SDK untuk PHP 2.0 dalam AISearch.

Catatan

  • Kode contoh dalam topik ini menggunakan ID Wilayah cn-hangzhou dari Wilayah (Hangzhou) Tiongkok. Secara default, titik akhir publik digunakan untuk mengakses sumber daya di bucket. Jika Anda ingin mengakses sumber daya di bucket dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung, lihat Wilayah dan titik akhir OSS.

  • Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk instruksi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan kredensial akses.

  • Untuk menggunakan OSS SDK untuk PHP memulai permintaan, Anda harus menginisialisasi instans OSSClient. Dalam contoh ini, instans OSSClient dibuat menggunakan konfigurasi default. Untuk informasi tentang cara mengonfigurasi instans OSSClient untuk OSS SDK untuk PHP 2.0, lihat Konfigurasikan instans OSSClient.

Contoh

Aktifkan AISearch

Berikut adalah kode contoh untuk mengaktifkan fitur AISearch pada bucket.

<?php

// Sertakan file autoload untuk memuat dependensi.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan dan jelaskan parameter baris perintah.
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Wilayah tempat bucket berada. 
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Titik akhir yang dapat digunakan layanan lain untuk mengakses OSS. 
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Nama bucket. 
];

// Ubah deskripsi menjadi daftar opsi panjang yang diperlukan oleh getopt.
// Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
$longopts = \array_map(function ($key) {
    return "$key:";
}, array_keys($optsdesc));

// Menguraikan parameter baris perintah.
$options = getopt("", $longopts);

// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help']; // Dapatkan informasi bantuan untuk parameter.
        echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
        exit(1); // Keluar dari program jika parameter yang diperlukan tidak ada.
    }
}

// Tetapkan nilai yang diuraikan dari parameter baris perintah ke variabel yang sesuai.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.

// Muat kredensial akses dari variabel lingkungan.
// Gunakan EnvironmentVariableCredentialsProvider untuk mengambil ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tentukan penyedia kredensial.
$cfg->setRegion($region); // Tentukan wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]); // Tentukan titik akhir jika disediakan.
}

// Buat instans OSSClient.
$client = new Oss\Client($cfg);

// Aktifkan fitur AISearch.
$request = new Oss\Models\OpenMetaQueryRequest($bucket,'semantic');
$result = $client->openMetaQuery($request);

printf(
   'status code:' . $result->statusCode . PHP_EOL .
   'request id:' . $result->requestId
);

Peroleh informasi tentang pustaka indeks metadata

Berikut adalah kode contoh untuk memperoleh informasi tentang pustaka indeks metadata dari bucket.

<?php

// Sertakan file autoload untuk memuat dependensi.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan dan jelaskan parameter baris perintah.
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Wilayah tempat bucket berada. 
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Titik akhir yang dapat digunakan layanan lain untuk mengakses OSS. 
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Nama bucket. 
];

// Ubah deskripsi argumen ke format opsi panjang yang diperlukan oleh getopt.
// Titik dua (:) setelah setiap argumen menunjukkan bahwa argumen memerlukan nilai.
$longopts = \array_map(function ($key) {
    return "$key:";
}, array_keys($optsdesc));

// Mengurai argumen baris perintah.
$options = getopt("", $longopts);

// Periksa apakah argumen yang diperlukan telah ditentukan.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help']; // Dapatkan informasi bantuan dari argumen.
        echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
        exit(1); // Jika argumen yang diperlukan tidak ditentukan, keluar dari program.
    }
}

// Ekstrak nilai dari argumen yang diuraikan.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.

// Muat informasi kredensial dari variabel lingkungan.
// Gunakan EnvironmentVariableCredentialsProvider untuk membaca ID Access Key dan Rahasia Access Key dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Setel penyedia kredensial.
$cfg->setRegion($region); // Setel wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]); // Jika titik akhir disediakan, setel titik akhir.
}

// Buat instans klien OSS.
$client = new Oss\Client($cfg);

// Buat objek GetMetaQueryStatusRequest untuk memperoleh status kueri metadata dari bucket.
$request = new Oss\Models\GetMetaQueryStatusRequest(
    bucket: $bucket
);

// Jalankan operasi untuk memperoleh status kueri metadata.
$result = $client->getMetaQueryStatus($request);

// Cetak hasil dari memperoleh status kueri metadata.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP. Misalnya, 200 menunjukkan bahwa permintaan berhasil.
    'request id:' . $result->requestId . PHP_EOL .   // ID permintaan, yang digunakan untuk debugging atau pelacakan permintaan.
    'meta query status:' . var_export($result->metaQueryStatus, true) . PHP_EOL // Status fitur kueri metadata, seperti diaktifkan atau dinonaktifkan.
);

Kueri objek yang memenuhi kondisi tertentu

Kode berikut memberikan contoh cara menggunakan fitur AISearch untuk menanyakan objek yang memenuhi kondisi tertentu dan mencantumkan informasi objek berdasarkan bidang serta metode pengurutan yang ditentukan.

<?php

// Impor file autoloader untuk memastikan bahwa pustaka dependensi dimuat dengan benar.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi argumen baris perintah.
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // Wilayah tempat bucket berada. Parameter ini diperlukan.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Titik akhir yang dapat digunakan layanan lain untuk mengakses OSS. Parameter ini opsional.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket. Parameter ini diperlukan.
];

// Ubah deskripsi argumen ke format opsi panjang yang diperlukan oleh getopt.
// Titik dua (:) setelah setiap argumen menunjukkan bahwa argumen memerlukan nilai.
$longopts = \array_map(function ($key) {
    return "$key:";
}, array_keys($optsdesc));

// Mengurai argumen baris perintah.
$options = getopt("", $longopts);

// Periksa apakah argumen yang diperlukan telah ditentukan.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help']; // Dapatkan informasi bantuan dari argumen.
        echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
        exit(1); // Jika argumen yang diperlukan tidak ditentukan, keluar dari program.
    }
}

// Ekstrak nilai dari argumen yang diuraikan.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.

// Muat informasi kredensial dari variabel lingkungan.
// Gunakan EnvironmentVariableCredentialsProvider untuk membaca ID Access Key dan Rahasia Access Key dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Setel penyedia kredensial.
$cfg->setRegion($region); // Setel wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]); // Jika titik akhir disediakan, setel titik akhir.
}

// Buat instans klien OSS.
$client = new Oss\Client($cfg);

// Lakukan kueri AISearch untuk objek yang memenuhi kondisi tertentu.
$request = new Oss\Models\DoMetaQueryRequest($bucket, new Oss\Models\MetaQuery(
    maxResults: 99,
    query: "Lihat hutan bersalju",
    mediaTypes: new Oss\Models\MetaQueryMediaTypes('image'),
    simpleQuery: '{"Operation":"gt", "Field": "Size", "Value": "30"}',
), 'semantic');

$result = $client->doMetaQuery($request);
printf(
    'status code:' . $result->statusCode . PHP_EOL .
    'request id:' . $result->requestId . PHP_EOL .
    'result:' . var_export($result, true)
);

Nonaktifkan fitur AISearch

Kode berikut memberikan contoh cara menonaktifkan fitur AISearch untuk bucket tertentu.

<?php

// Impor file autoloader untuk memastikan bahwa pustaka dependensi dimuat dengan benar.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi argumen baris perintah.
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // Wilayah tempat bucket berada. Parameter ini diperlukan.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Titik akhir yang dapat digunakan layanan lain untuk mengakses OSS. Parameter ini opsional.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket. Parameter ini diperlukan.
];

// Ubah deskripsi argumen ke format opsi panjang yang diperlukan oleh getopt.
// Titik dua (:) setelah setiap argumen menunjukkan bahwa argumen memerlukan nilai.
$longopts = \array_map(function ($key) {
    return "$key:";
}, array_keys($optsdesc));

// Mengurai argumen baris perintah.
$options = getopt("", $longopts);

// Periksa apakah argumen yang diperlukan telah ditentukan.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help']; // Dapatkan informasi bantuan dari argumen.
        echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
        exit(1); // Jika argumen yang diperlukan tidak ditentukan, keluar dari program.
    }
}

// Ekstrak nilai dari argumen yang diuraikan.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.

// Muat informasi kredensial dari variabel lingkungan.
// Gunakan EnvironmentVariableCredentialsProvider untuk membaca ID Access Key dan Rahasia Access Key dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Setel penyedia kredensial.
$cfg->setRegion($region); // Setel wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]); // Jika titik akhir disediakan, setel titik akhir.
}

// Buat instans klien OSS.
$client = new Oss\Client($cfg);

// Buat objek CloseMetaQueryRequest untuk menonaktifkan fitur pengambilan untuk bucket.
$request = new \AlibabaCloud\Oss\V2\Models\CloseMetaQueryRequest(
    bucket: $bucket
);

// Jalankan operasi untuk menonaktifkan fitur pengambilan.
$result = $client->closeMetaQuery($request);

// Cetak hasil dari menonaktifkan fitur pengambilan.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP. Misalnya, 200 menunjukkan bahwa permintaan berhasil.
    'request id:' . $result->requestId . PHP_EOL     // ID permintaan, yang digunakan untuk debugging atau pelacakan permintaan.
);

Referensi

  • Untuk informasi lebih lanjut tentang operasi AISearch, lihat Pencarian vektor.

  • Untuk informasi lebih lanjut tentang operasi API untuk pengindeksan data, lihat Pengindeksan Data.

  • Untuk kode contoh lengkap untuk AISearch, lihat contoh GitHub.