全部产品
Search
文档中心

OpenSearch:Tipe ARRAY

更新时间:Jun 26, 2025

Topik ini menjelaskan skenario, metode pengiriman data, dan sintaks pencarian untuk data bertipe ARRAY.

Skenario

Tipe ARRAY adalah jenis struktur data yang berisi sekelompok elemen dengan tipe data yang sama. Anda dapat melakukan pencarian mandiri berdasarkan setiap elemen dalam array. Sebagai contoh, sebuah novel memiliki tag berikut: "Misteri", "Perjalanan Waktu", dan "Klasik". Anda dapat menemukan novel tersebut dengan mencari "Misteri".

Bagaimana cara saya mendorong data bertipe ARRAY?

OpenSearch menyediakan beberapa metode untuk mendorong data bertipe ARRAY. Contoh berikut menjelaskan cara menggunakan metode 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 tentang operasi yang dapat dipanggil untuk mengunggah data, lihat Referensi API Trafik > Operasi API terkait Aplikasi > Proses data di Panduan Pengembang.

Gunakan SDK

Anda dapat merujuk pada langkah-langkah mendorong data menggunakan OpenSearch SDK for Java di topik Contoh kode untuk mendorong data. Proses menggunakan SDK untuk bahasa pemrograman lainnya serupa.

Konfigurasikan sumber data

Jika Anda mengonfigurasi sumber data, Anda dapat mengurai data sumber dalam berbagai format. Jika bidang bertipe ARRAY didefinisikan, Anda dapat mengaitkan Plugin MultiValueSpliter dengan bidang tersebut dan menentukan pemisah untuk memisahkan nilai-nilai dari bidang tersebut. Sebagai contoh, tag yang disebutkan di bagian "Skenario" dari topik ini diurai dalam format berikut: "Perjalanan Waktu,Misteri,Romantis". Dalam hal ini, atur pemisah ke koma (,), seperti yang ditunjukkan pada gambar berikut. Plugin secara otomatis mengonversi bidang dalam database menjadi nilai bertipe ARRAY sehingga nilainya dapat dikenali oleh mesin pencari. Untuk informasi lebih lanjut, lihat Gunakan plugin pemrosesan data.

1

Bagaimana cara saya mengambil data bertipe ARRAY dan apa efek yang bisa dicapai?

Anda dapat menggunakan klausa query atau klausa filter untuk melakukan pencarian mandiri berdasarkan setiap elemen dari array. Sebagai contoh, Anda dapat menggunakan query=tags:'Perjalanan Waktu' untuk mencari dokumen yang mengandung tag berikut: Perjalanan Waktu, Misteri, dan Romantis. Anda juga dapat menggunakan query=title:'Berjalan Di Atas Es Tipis'&&filter=tags="Perjalanan Waktu" untuk mencari novel berjudul Berjalan Di Atas Es Tipis yang mengandung tag "Perjalanan Waktu".

Perhatikan bahwa nilai balik dari pencarian bertipe ARRAY adalah string, bukan array. Nilai balik dipisahkan oleh '\t'.

FAQ

T1: 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 berhubungan dengan array. Tipe STRING_ARRAY mendukung pencocokan tepat untuk setiap elemen. Setiap elemen dapat terdiri dari beberapa istilah. Tidak diperlukan semua elemen dalam bidang bertipe STRING_ARRAY cocok.

T2: Bagaimana cara saya mendapatkan jumlah elemen dalam array?

A: Anda dapat menggunakan fungsi fieldlen yang disediakan oleh OpenSearch untuk mendapatkan jumlah elemen.

T3: Bagaimana cara saya menentukan data bertipe ARRAY saat saya 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[].