PolarSearch adalah layanan pencarian terdistribusi dari PolarDB yang mendukung pencarian teks penuh dan pencarian vektor. Layanan ini dibangun di atas OpenSearch, kompatibel dengan ekosistem Elasticsearch, serta terintegrasi erat dengan database PolarDB. PolarSearch menyediakan solusi satu atap untuk kebutuhan pengambilan data Anda melalui operasi yang sederhana.
Topik ini mengasumsikan Anda memiliki pengetahuan dasar tentang Elasticsearch atau OpenSearch. Untuk informasi lebih lanjut, lihat Dokumentasi OpenSearch.
Fitur ini saat ini berada dalam tahap beta. Jika Anda memerlukan fitur ini, Anda dapat mengajukan tiket untuk menghubungi kami agar fitur tersebut diaktifkan.
Berlaku untuk
Persyaratan konfigurasi kluster
Versi produk: Edisi Perusahaan.
Mesin database: MySQL 8.0.1, MySQL 8.0.2.
CatatanVersi minor tertentu tidak diperlukan untuk mesin database.
Untuk informasi lebih lanjut, lihat Kueri versi mesin.
Seri: Edisi Kluster.
PolarSearch tidak didukung untuk kluster serverless. Untuk informasi lebih lanjut, lihat Serverless.
Wilayah dan zona yang didukung
PolarSearch didukung di zona-zona berikut:
Wilayah | Zona |
Tiongkok (Hangzhou) | Zona K |
Tiongkok (Shanghai) | Zona E, Zona L, Zona N |
Tiongkok (Shenzhen) | Zona C, Zona D |
Tiongkok (Qingdao) | Zona C |
Tiongkok (Beijing) | Zona K |
Tiongkok (Zhangjiakou) | Zona B |
Jepang (Tokyo) | Zona A, Zona C |
Meksiko | Zona A |
Penagihan
PolarSearch menggunakan node pencarian terpisah untuk menyediakan fitur pencarian. Node-node ini ditagih dengan cara yang sama seperti node komputasi reguler. Indeks dan data pada node pencarian juga mengonsumsi ruang penyimpanan, yang menimbulkan biaya penyimpanan.
Tambahkan node pencarian PolarSearch
Untuk kluster yang sudah ada dan memenuhi persyaratan berlaku untuk, Anda dapat menambahkan node pencarian.
Masuk ke Konsol PolarDB. Di panel navigasi sebelah kiri, klik Clusters. Pilih wilayah tempat kluster Anda berada, lalu temukan kluster tersebut.
Klik ID kluster untuk membuka halaman Basic Information.
Di area Database Nodes, klik Add/Remove Node.

Pada kotak dialog Add/Remove Node Wizard, pilih untuk menambahkan node pencarian.
Buat akun node pencarian
Tetapkan akun administrator
Akun yang Anda tambahkan adalah akun database standar.
Akun standar ini berfungsi sebagai akun administrator untuk fitur PolarSearch.
Masuk ke Konsol PolarDB. Di panel navigasi sebelah kiri, klik Clusters. Pilih wilayah tempat kluster Anda berada, lalu temukan kluster tersebut.
Klik ID kluster untuk membuka halaman Basic Information.
Di area Database Nodes, arahkan kursor ke Search Node, lalu klik Set Connection Database Account.

Pada kotak dialog, pilih akun database standar yang sudah ada atau buat yang baru, lalu masukkan kata sandinya.

Tetapkan akun standar
Untuk akun standar, Anda dapat mengontrol indeks mana saja yang dapat diakses oleh akun tersebut.
Anda dapat menggunakan API untuk menerapkan kontrol akses lengkap untuk node pencarian. Untuk informasi lebih lanjut, lihat dokumentasi API OpenSearch.
Masuk ke konsol PolarSearch yang kompatibel dengan Kibana dan buat akun menggunakan plugin keamanan.
Dapatkan titik akhir koneksi
Titik akhir pencarian
Di area Database Nodes, arahkan kursor ke Search Node. Dapatkan titik akhir pribadi atau publik sesuai lingkungan Anda.

Alamat Dashboard
Di area Database Nodes, arahkan kursor ke Search Node. Dapatkan alamat Dashboard pribadi atau publik sesuai lingkungan Anda.
Masuk ke PolarSearch
Akses menggunakan titik akhir pencarian
Jika Anda lebih suka menggunakan API untuk mengelola indeks dan data, Anda dapat mengakses PolarSearch melalui API-nya. Bagian ini menggunakan instance ECS sebagai contoh:
Konfigurasikan daftar putih kluster: Tambahkan alamat IP instance ECS Anda ke daftar putih kluster PolarDB for MySQL.
CatatanJika instance ECS dan kluster PolarDB for MySQL berada dalam virtual private cloud (VPC) yang sama, tambahkan Alamat IP pribadi instance ECS.
Jika instance ECS dan kluster PolarDB for MySQL tidak berada dalam VPC yang sama, tambahkan Alamat IP publik instance ECS.
Sambungkan ke PolarSearch: Jalankan perintah berikut. Jika perintah mengembalikan informasi kluster, koneksi berhasil. Ganti
<endpoint>:<port>dengan titik akhir pencarian PolarSearch. Ganti<user_name>:<passwd>dengan akun administrator PolarSearch.curl http://<endpoint>:<port>/ -u <user_name>:<passwd>
Akses menggunakan Dashboard
Jika Anda ingin menggunakan antarmuka pengguna grafis (GUI) untuk mengelola PolarSearch, Anda dapat mengaksesnya melalui Dashboard (konsol). Bagian ini menggunakan browser di lingkungan lokal sebagai contoh:
Konfigurasikan daftar putih kluster: Tambahkan alamat IP lingkungan lokal Anda ke daftar putih kluster PolarDB for MySQL.
Masuk ke konsol PolarSearch melalui browser:
Di bilah alamat browser Anda, masukkan
http://<endpoint>:<port>lalu tekan Enter. Ganti<endpoint>:<port>dengan alamat Dashboard publik PolarSearch.Di halaman login konsol, masukkan akun administrator untuk PolarSearch guna masuk ke konsol PolarSearch yang kompatibel dengan Kibana.
Contoh
Semua contoh dalam bagian ini menggunakan command line pada instance ECS.
PolarSearch sepenuhnya kompatibel dengan kit pengembangan perangkat lunak (SDK) dan REST API OpenSearch 2.10.0. Masalah kompatibilitas dapat terjadi pada versi lain. Untuk informasi lebih lanjut, lihat OpenSearch.
Buat indeks
Indeks pada node pencarian mirip dengan tabel dalam database relasional. Anda dapat menggunakan REST API yang kompatibel dengan Elasticsearch untuk membuat indeks, seperti pada contoh berikut:
curl -X PUT "http://<endpoint>:<port>/articles" -H "Content-Type:application/json" -d '
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"title": {
"type": "text" // Bidang pencarian teks penuh (Komentar penjelasan. Hapus sebelum pengujian.)
},
"content": {
"type": "text"
},
"author": {
"type": "keyword" // Bidang pencocokan eksak (Komentar penjelasan. Hapus sebelum pengujian.)
}
}
}
}
'Impor data
curl -X POST "http://<endpoint>:<port>/articles/_bulk" -H "Content-Type:application/json" -d '
{"index": {}}
{"title": "Introduction to PolarSearch", "content": "PolarSearch is a powerful search engine.", "author": "Allen"}
{"index": {}}
{"title": "Advanced Search Techniques", "content": "Learn how to use full-text search and filters in PolarDB.", "author": "Lang"}
{"index": {}}
{"title": "Elasticsearch vs PolarSearch", "content": "A comparison of Elasticsearch and PolarSearch features.", "author": "Zhao"}
'Jalankan kueri pencarian
Setelah data diimpor, Anda dapat melakukan pencarian teks penuh menggunakan SDK atau REST API, seperti pada contoh berikut:
curl -X GET "http://<endpoint>:<port>/articles/_search" -H "Content-Type:application/json" -d '
{
"query": {
"match": {
"content": "PolarSearch"
}
}
}'Untuk informasi lebih lanjut mengenai sintaks kueri pencarian, lihat OpenSearch.
Buat indeks vektor
curl -X PUT "http://<endpoint>:<port>/my-vector-index" -H "Content-Type:application/json" -d '
{
"settings": {
"index": {
"knn": true
}
},
"mappings": {
"properties": {
"vector_field": {
"type": "knn_vector",
"dimension": 4
},
"metadata": {
"type": "text"
}
}
}
}
'Masukkan data vektor
curl -X POST "http://<endpoint>:<port>/my-vector-index/_bulk" -H "Content-Type:application/json" -d '
{"index": {}}
{"vector_field": [0.1, 0.5, -0.3, 0.8], "metadata": "Document 1"}
{"index": {}}
{"vector_field": [-0.2, 0.7, 0.4, -0.1], "metadata": "Document 2"}
'Lakukan pengambilan vektor
curl -X GET "http://<endpoint>:<port>/my-vector-index/_search" -H "Content-Type:application/json" -d '
{
"size": 2,
"query": {
"knn": {
"vector_field": {
"vector": [0.1, 0.5, -0.3, 0.8],
"k": 2
}
}
}
}
'