Topik ini menjelaskan skenario penggunaan, metode dorong data, dan sintaks pencarian untuk data bertipe ARRAY.
Skenario
Tipe ARRAY adalah struktur data yang berisi kelompok elemen dengan tipe data yang sama. Anda dapat melakukan pencarian independen berdasarkan setiap elemen dalam array tersebut. Misalnya, sebuah novel memiliki tag berikut: "Mystery", "Time-travel", dan "Classical". Anda dapat menemukan novel tersebut dengan mencari "Mystery".
Bagaimana cara mendorong data bertipe ARRAY?
OpenSearch menyediakan beberapa metode untuk mendorong data bertipe ARRAY. Contoh berikut menjelaskan cara menggunakan metode yang berbeda untuk mendorong data.
Panggil Operasi API
Data bertipe ARRAY harus diunggah dalam format JsonArray. Contoh:
[
{
"fields": {
"id": "0",
"int_array": [
14,
85
],
"float_array": [
14.0,
85.0
],
"literal_array": [
"abc",
"xyz"
]
},
"cmd": "ADD"
}
]
Untuk informasi lebih lanjut mengenai operasi yang dapat dipanggil untuk mengunggah data, lihat Referensi API Traffic > Operasi API terkait Aplikasi > Proses data dalam Panduan Pengembang.
Gunakan SDK
Anda dapat merujuk pada langkah-langkah mendorong data menggunakan OpenSearch SDK untuk Java dalam topik Push demo. Proses penggunaan SDK untuk bahasa pemrograman lainnya serupa.
Konfigurasikan sumber data
Saat mengonfigurasi sumber data, Anda dapat mengurai data sumber dalam berbagai format. Jika Anda memiliki bidang yang didefinisikan sebagai tipe array, pilih plugin MultiValueSplitter untuk bidang tersebut dan tentukan delimiter-nya. Misalnya, jika bidang database untuk tag berisi "Time-travel,Mystery,Romance", Anda dapat mengatur delimiter menjadi koma (,). Plugin tersebut secara otomatis mengonversi string dari bidang database menjadi array yang dapat dikenali oleh mesin pencari. Plugin MultiValueSplitter
Bagaimana cara mengambil data bertipe ARRAY dan hasil apa yang dapat dicapai?
Anda dapat menggunakan klausa kueri atau klausa filter untuk melakukan pencarian independen berdasarkan setiap elemen array. Misalnya, Anda dapat menggunakan query=tags:'Time-travel' untuk mencari dokumen yang berisi tag berikut: Time-travel, Mystery, dan Romantic. Anda juga dapat menggunakan query=title:'Treading On Thin Ice'&&filter=tags="Time-travel" untuk mencari novel berjudul Treading On Thin Ice yang memiliki tag "Time-travel".
Perhatikan bahwa nilai kembali dari pencarian bertipe ARRAY berupa string, bukan array. Nilai-nilai tersebut dipisahkan oleh '\t'.
FAQ
Q1: Mengapa tipe TEXT_ARRAY tidak tersedia dan apa perbedaan antara tipe TEXT dan STRING_ARRAY?
A: Tipe TEXT mencakup tipe TEXT, SHORT_TEXT, NWS_TEXT, dan MWS_TEXT. Bidang bertipe TEXT melibatkan proses analisis. Tipe TEXT mendukung pencocokan kabur dan tidak terkait dengan array. Tipe STRING_ARRAY mendukung pencocokan eksak untuk setiap elemen. Setiap elemen dapat terdiri dari beberapa kata kunci. Tidak diwajibkan semua elemen dalam bidang bertipe STRING_ARRAY harus sesuai.
Q2: Bagaimana cara mendapatkan jumlah elemen dalam suatu array?
A: Anda dapat menggunakan fungsi fieldlen yang disediakan oleh OpenSearch untuk mendapatkan jumlah elemen tersebut.
Q3: Bagaimana cara menentukan data bertipe ARRAY saat menggunakan kode Java untuk mendorong data?
Anda dapat menggunakan variabel bertipe ARRAY untuk menentukan data bertipe ARRAY. Contoh: literal_array--->String [] dan int_array--->int [].